Zertifikatsperrlisten Ablaufdatum mit PRTG und Powershell abfragen
Hallo zusammen,
wir benutzen PRTG zum Netzwerkmonitoring. Dort fehlte ein Sensor, um das Ablaufdatum der Zertifikatsperrlisten zu überprüfen. Nach einiger Recherche bin ich auf folgende Seite gestoßen: http://powershellcoder.com/index.php/2016/10/08/get-crltimevalidity-par ... Das Skript bezieht die CRL allerdings aus einer Datei, so dass noch der Download vorangestellt werden musste. Zum Schluss fehlte dann noch die passende Ausgabe um das in PRTG als Sensor nutzen zu können. Zurückgeliefert werden die Tage bis zum Ablauf der CRL.
Hinweis:
ohne UseBasicParsing funktionierte das Skript nicht auf dem Server. Das lag vermutlich an IE und dessen abgesichertem Modus.
Der Sensor wird als Custom Skript in PRTG eingebunden. Als Parameter gibt man die URL des Sperrliste an.
https://kb.paessler.com/en/topic/71356-guide-for-powershell-based-custom ... In den Kanaleinstellungen kann man dann passende Grenzwerte einstellen.
Vielleicht kanns jemand gebrauchen
Grüße
lcer
wir benutzen PRTG zum Netzwerkmonitoring. Dort fehlte ein Sensor, um das Ablaufdatum der Zertifikatsperrlisten zu überprüfen. Nach einiger Recherche bin ich auf folgende Seite gestoßen: http://powershellcoder.com/index.php/2016/10/08/get-crltimevalidity-par ... Das Skript bezieht die CRL allerdings aus einer Datei, so dass noch der Download vorangestellt werden musste. Zum Schluss fehlte dann noch die passende Ausgabe um das in PRTG als Sensor nutzen zu können. Zurückgeliefert werden die Tage bis zum Ablauf der CRL.
param ($CRLURL)
$webCRL = invoke-webrequest -Uri $CRLURL -UseBasicParsing
$CRLBytes = $webCRL.Content
#set match strings
$OIDCommonName = " 06 03 55 04 03 "
$UTCTime = " 17 0D "
#convert crl bytes to hex string
$CRLHexString = ($CRLBytes | % {"{0:X2}" -f $_}) -join " "
#get the relevent bytes using the match strings
$ThisUpdateBytes = ($CRLHexString -split $UTCTime )[1] -split " " | % {[Convert]::ToByte("$_",16)}
$NextUpdateBytes = (($CRLHexString -split $UTCTime )[2] -split " ")[0..12] | % {[Convert]::ToByte("$_",16)}
#convert data to readable values
[DateTime]$ThisUpdate = [Management.ManagementDateTimeConverter]::ToDateTime(("20" + $(($ThisUpdateBytes | %{[char]$_}) -join "" -replace "z")) + ".000000+000")
[DateTime]$NextUpdate = [Management.ManagementDateTimeConverter]::ToDateTime(("20" + $(($NextUpdateBytes | %{[char]$_}) -join "" -replace "z")) + ".000000+000")
$FromDate = Get-Date
$days =[math]::truncate( ($NextUpdate - $FromDate).TotalDays)
write-output "$($days):OK"
Hinweis:
invoke-webrequest -Uri $CRLURL -UseBasicParsing
Der Sensor wird als Custom Skript in PRTG eingebunden. Als Parameter gibt man die URL des Sperrliste an.
https://kb.paessler.com/en/topic/71356-guide-for-powershell-based-custom ... In den Kanaleinstellungen kann man dann passende Grenzwerte einstellen.
Vielleicht kanns jemand gebrauchen
Grüße
lcer
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 1622590038
Url: https://administrator.de/knowledge/zertifikatsperrlisten-ablaufdatum-mit-prtg-und-powershell-abfragen-1622590038.html
Ausgedruckt am: 27.12.2024 um 06:12 Uhr
9 Kommentare
Neuester Kommentar
Moin,
Gruß,
Dani
Du kannst aber einen XML-Sensor mit mehreren Kanälen basteln.
richtig. Wie soll denn PRTG das Datum anzeigen? Widerspricht etwas dem Konzept eines Monitoring-Programms.
Jeweils einen Channel und in Tagen rechnen. Somit kannst du mit Fehlerwerte Grenzen ziehen und Alarme erzeugen. Machen wir genau so und das funktioniert 1a.Gruß,
Dani
Moin,
es geht darum, dass wir unsere Sperrliste anhand des "Next CRL Publish"-Datum erneuern und nicht anhand des "Next Update"-Datum.
Beispiel
Next CRL Publish:: 23.11.23
Next Update:: 21.01.24
Und ich möchte gerne 30 Tage vor dem "Next CRL Publish"-Datum von PRTG gewarnt werden.
Dein ps-Script gibt immer die Tage zwischen heute und dem "Next Update"-Datum aus und ich raff einfach nicht wie ich das ändern kann.
Beste Grüße
Niko
es geht darum, dass wir unsere Sperrliste anhand des "Next CRL Publish"-Datum erneuern und nicht anhand des "Next Update"-Datum.
Beispiel
Next CRL Publish:: 23.11.23
Next Update:: 21.01.24
Und ich möchte gerne 30 Tage vor dem "Next CRL Publish"-Datum von PRTG gewarnt werden.
Dein ps-Script gibt immer die Tage zwischen heute und dem "Next Update"-Datum aus und ich raff einfach nicht wie ich das ändern kann.
Beste Grüße
Niko
Zitat von @Dani:
Moin Niko,
du berechnest die Differenz von den Daten (Plural von Datum) und hast somit die Anzahl der Tage. Im Sensor bzw. Channel kannst du somit anschließend an Hand dessen Alarmwerte definieren.
Moin Niko,
du berechnest die Differenz von den Daten (Plural von Datum) und hast somit die Anzahl der Tage. Im Sensor bzw. Channel kannst du somit anschließend an Hand dessen Alarmwerte definieren.
Allgemein kannst du bei einem Custom-Skript auch die Textausgabe ganz oben so anpassen, dass dort immer das nächste Datum genannt wird. Wenn es länger als 60 Tage hin ist grün, 30 bis 60 Tage gelb, weniger als 30 Tage rot.
Ich habe das zum Beispiel mit den aktuellen Office-Versionen bei uns so gemacht:
Den Text kannst du per Hand schreiben und mit If-Bedingungen sogar flexible halten
Gruß
Doskias