sqlinsight-pro/SQL Scripts/SQLI-SYN-003.sql
Søren Eggert Lundsteen Olsen 842286d57d SQL Scripts for the Windows server and synthetic check rules (SQLI-WIN-001..013, SQLI-SYN-001..003)
One reviewable file per rule id with a Danish header: what and why, thresholds
with config keys and defaults, severity, required rights (never local
administrator), supported versions, collector file and member, and the
evaluation in plain Danish. The Windows rules use no SQL: their exact CIM/WQL
queries, event log XPath and a read-only PowerShell snippet to verify them are in
a comment block. SQLI-SYN-001/002 carry the exact SQL a SQL check runs (session
settings, transaction that is always rolled back, SELECT 1). A test checks every
server and check rule has its file.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-02 14:58:36 +02:00

39 lines
2 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
SQLI-SYN-003 – TLS-certifikatet udløber snart
==============================================
Hvad og hvorfor
Når certifikatet på en HTTPS-adresse udløber, afviser browsere og integrationer forbindelsen (eller viser en
sikkerhedsadvarsel), og siden er i praksis nede. Udløbsdatoen læses ved hvert HTTPS-tjek – også når certifikatet
afvises (fx selvsigneret).
Tærskler (agentens appsettings.json)
SQLInsight:SyntheticChecks:CertificateWarningDays standard 21 (fund når certifikatet udløber inden for så mange dage)
SQLInsight:SyntheticChecks:CertificateCriticalDays standard 7 (Høj inden for så mange dage)
Alvor
Middel; Høj inden for CertificateCriticalDays; Kritisk når det er udløbet.
Rettigheder
Ingen ud over netværksadgang fra agentens server til adressen.
Understøttede versioner
Alle HTTPS-servere (TLS 1.2 og nyere fra agentens server).
Collector
src/SQLInsight.Servers/Synthetic/SyntheticCheckRunner.cs – HttpAsync (RemoteCertificateValidationCallback gemmer
certifikatets NotAfter og Subject), fra src/SQLInsight.Agent/Servers/SyntheticCheckService.cs – RunCheckAsync.
Regel
src/SQLInsight.Rules/Servers/SyntheticCheckRules.cs – CertificateExpiryRule
Evaluering
Kun HTTP-tjek med https://. Den nyeste kørsel, der har set et certifikat, bruges: dage til udløb = NotAfter − nu.
Uden set certifikat endnu: "ikke målbar". Andre tjek: "ikke relevant".
Reglen bruger ikke SQL. Tjekket er en HTTPS GET; filen indeholder kun kommentarer og ændrer intet.
Efterprøv med PowerShell (skrivebeskyttet; kør på agentens server):
$c = New-Object System.Net.Sockets.TcpClient('ep.firma.local', 443)
$s = New-Object System.Net.Security.SslStream($c.GetStream(), $false, { $true })
$s.AuthenticateAsClient('ep.firma.local'); $s.RemoteCertificate.GetExpirationDateString(); $c.Close()
*/