Ein neues Tool am Monitoring-Himmel: Mit check_cert lassen sich Zertifikate präzise überwachen – als Checkmk-Plugin, Standalone-Tool oder Erweiterung für andere Systeme. Wie das genau funktioniert, zeigen wir in dieser Folge „Monitoring mit Checkmk“ von unserem Schwesterportal IP-Insider.
Mit check_cert lassen sich SSL/TLS-Zertifikate bis ins Detail prüfen – von Laufzeiten über Signaturverfahren bis hin zu Aussteller-Details.
(Bild: Lang | Checkmk)
Checks auf Zertifikate waren lange Zeit Teil der Website-Checks – zumindest in Checkmk, Nagios und kompatiblen Systemen. Verantwortlich dafür: Das Nagios-Plugin check_http, das seit Ende der 90er seinen Dienst verrichtet. Den Nachfolger check_httpv2 haben die Kollegen von IP-Insider in der letzten Folge der Checkmk-Serie vorgestellt.
Leider beschränkt sich check_http auf die Prüfung der zeitlichen Gültigkeit des Zertifikats – zu wenig für den heutigen Alltag. Auch check_httpv2 leistet diesbezüglich kaum mehr, Checkmk hat lieber ein eigenständiges Tool dafür entwickelt: check_cert – das ebenfalls als Standalone-Tool zur Verfügung steht!
Und das ist gut so, denn es gibt viele kleine Bausteine, die für die Sicherheit einer Webseite verantwortlich sind. Dass ein Zertifikat noch nicht abgelaufen ist – gut und schön. Aber was ist, wenn zum Beispiel eine bestimmte TLS-Version für die Transportsicherung vorgesehen ist? Vielleicht sogar bestimmte Signaturverfahren? In besonders sicheren Umgebungen oder beispielsweise bei Diensten, die die Bundesverwaltung nutzt, sind hier ganz konkrete Algorithmen und Kombinationen aus diesen vorgegeben – und müssen entsprechend gemonitort werden.
Oder noch allgemeiner: Soweit es sich um Ihre eigenen Server handelt, sollten Sie sicherstellen, dass auch wirklich Ihre eigenen Zertifikate aktiv sind, nicht bloß solche mit augenscheinlich korrekten Werten.
Mit check_cert ist dies ziemlich problemlos möglich. Sei es als One-Liner im Terminal, als Teil eigener Skripte oder Nagios-kompatibler Monitoring-Systeme wie Checkmk selbst.
In Checkmk finden Sie den Zertifikatscheck unter „Setup/Services/HTTP, TCP, email, .../Check certificates“. Natürlich handelt es sich hier um einen aktiven Check, sprich er wird direkt vom Server aus ausgeführt.
Die Konfiguration ist im einfachsten Fall extrem simpel: Sie müssen lediglich einen Namen für den Check vergeben, beispielsweise „IP-Insider“, und die Adresse des Hosts.
Wenn Sie keinerlei weitere Angaben machen, werden folgende, durchaus sinnvolle Vorgaben als Schwellwerte für Statuswechsel auf WARN/CRIT genutzt:
Restlaufzeit des Zertifikats: 40/20 Tage
Maximale Laufzeit: 90
Antwortzeit: 100/200 ms
Selbst-signierte Zertifikate erlauben: Nein
Abbildung 1: Überwachte Webseiten können einem bestimmten Host zugeordnet werden.
(Bild: Lang | Checkmk)
Eine Angabe sollten Sie selbst in diesem einfachsten denkbaren Fall setzen: Unter „Conditions“ fehlt noch ein Host, dem dieser Check zugeordnet wird. Wenn es sich um einen überwachten Host handelt, sollte der Check natürlich dort landen. Falls nicht, könnten Sie den Check zum Beispiel einem extra für HTTP- und Zertifikatschecks angelegten Host oder behelfsweise dem Localhost zuordnen, um die Regel zu vervollständigen (siehe Abbildung 1).
Abbildung 2: Das Resultat eines absichtlich auf Warnungen hin konfigurierten Zertifikatscheck.
(Bild: Lang | Checkmk)
Im Monitoring bekommen Sie dann eine simple Auswertung, die neben dem Status und den oben erwähnten Metriken auch einige Zertifikatsdetails liefert, etwa „Issuer CN: R10“, ein Common Name, der sich wiederum Let's Encrypt zuordnen lässt (siehe Abbildung 2).
Präzise Checks
Zertifikate lassen sich allerdings auch deutlich präziser monitoren, nämlich über die Optionen unterhalb von „Check for specific values“. Hier lassen sich für die eigene Infrastruktur alle Datenfelder konkret festlegen, also beispielsweise „Common Name“ von Issuer und Organisation, das Land des Ausstellers. Im Grunde alles, was auch ein Browser ausgibt (siehe Abbildung 3).
Abbildung 3: Wer auf Nummer Sicher gehen will, bildet den Status quo möglichst exakt ab.
(Bild: Lang | Checkmk)
Besonders interessant erscheinen aber „Serial number“ sowie die Angaben zu verwendeten Algorithmen, sprich „Certificate signature algorithm“ und „Public key algorithm/size“ (siehe Abbildung 4).
Über die Seriennummer können Sie völlig zweifelsfrei verifizieren, dass auf einer Seite exakt das gewünschte Zertifikat läuft. Und über die Angaben zu Schlüsseln und Verschlüsselung können beispielsweise Vorgaben geprüft werden, wie sie etwa vom Bundesamt für Sicherheit in der Informationstechnik für die Nutzung seitens der Bundesverwaltung festgelegt werden.
Abbildung 4: Mit den Crypto-Optionen lassen sich sicherheitstechnische Vorgaben evaluieren.
(Bild: Lang | Checkmk)
Clevere Host-Zuordnung
Im Artikel zu check_httpv2 haben wir es bereits kurz angerissen: Die Zuordnung zu Hosts lässt sich cleverer bewerkstelligen. Angenommen, Sie möchten sehr viele Zertifikate monitoren und immer wieder neue Endpunkte hinzufügen.
Wenn Sie für alle Endpunkte individuelle Werte vorgeben müssen, bleibt nur die Arbeit mit mehreren Regeln und/oder mehreren Endpunkten in diesen Regeln. In der Praxis werden speziell externe Zertifikate aber eher auf allgemeine Kriterien geprüft, aktuelle Verschlüsselung, Gültigkeit, Aussteller und so weiter.
Stand: 08.12.2025
Es ist für uns eine Selbstverständlichkeit, dass wir verantwortungsvoll mit Ihren personenbezogenen Daten umgehen. Sofern wir personenbezogene Daten von Ihnen erheben, verarbeiten wir diese unter Beachtung der geltenden Datenschutzvorschriften. Detaillierte Informationen finden Sie in unserer Datenschutzerklärung.
Einwilligung in die Verwendung von Daten zu Werbezwecken
Ich bin damit einverstanden, dass die Vogel IT-Medien GmbH, Max-Josef-Metzger-Straße 21, 86157 Augsburg, einschließlich aller mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen (im weiteren: Vogel Communications Group) meine E-Mail-Adresse für die Zusendung von Newslettern und Werbung nutzt. Auflistungen der jeweils zugehörigen Unternehmen können hier abgerufen werden.
Der Newsletterinhalt erstreckt sich dabei auf Produkte und Dienstleistungen aller zuvor genannten Unternehmen, darunter beispielsweise Fachzeitschriften und Fachbücher, Veranstaltungen und Messen sowie veranstaltungsbezogene Produkte und Dienstleistungen, Print- und Digital-Mediaangebote und Services wie weitere (redaktionelle) Newsletter, Gewinnspiele, Lead-Kampagnen, Marktforschung im Online- und Offline-Bereich, fachspezifische Webportale und E-Learning-Angebote. Wenn auch meine persönliche Telefonnummer erhoben wurde, darf diese für die Unterbreitung von Angeboten der vorgenannten Produkte und Dienstleistungen der vorgenannten Unternehmen und Marktforschung genutzt werden.
Meine Einwilligung umfasst zudem die Verarbeitung meiner E-Mail-Adresse und Telefonnummer für den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern wie z.B. LinkedIN, Google und Meta. Hierfür darf die Vogel Communications Group die genannten Daten gehasht an Werbepartner übermitteln, die diese Daten dann nutzen, um feststellen zu können, ob ich ebenfalls Mitglied auf den besagten Werbepartnerportalen bin. Die Vogel Communications Group nutzt diese Funktion zu Zwecken des Retargeting (Upselling, Crossselling und Kundenbindung), der Generierung von sog. Lookalike Audiences zur Neukundengewinnung und als Ausschlussgrundlage für laufende Werbekampagnen. Weitere Informationen kann ich dem Abschnitt „Datenabgleich zu Marketingzwecken“ in der Datenschutzerklärung entnehmen.
Falls ich im Internet auf Portalen der Vogel Communications Group einschließlich deren mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen geschützte Inhalte abrufe, muss ich mich mit weiteren Daten für den Zugang zu diesen Inhalten registrieren. Im Gegenzug für diesen gebührenlosen Zugang zu redaktionellen Inhalten dürfen meine Daten im Sinne dieser Einwilligung für die hier genannten Zwecke verwendet werden. Dies gilt nicht für den Datenabgleich zu Marketingzwecken.
Recht auf Widerruf
Mir ist bewusst, dass ich diese Einwilligung jederzeit für die Zukunft widerrufen kann. Durch meinen Widerruf wird die Rechtmäßigkeit der aufgrund meiner Einwilligung bis zum Widerruf erfolgten Verarbeitung nicht berührt. Um meinen Widerruf zu erklären, kann ich als eine Möglichkeit das unter https://contact.vogel.de abrufbare Kontaktformular nutzen. Sofern ich einzelne von mir abonnierte Newsletter nicht mehr erhalten möchte, kann ich darüber hinaus auch den am Ende eines Newsletters eingebundenen Abmeldelink anklicken. Weitere Informationen zu meinem Widerrufsrecht und dessen Ausübung sowie zu den Folgen meines Widerrufs finde ich in der Datenschutzerklärung.
Hier sollten Sie eher so vorgehen: Legen Sie einen Ordner speziell für Webseiten/Zertifikate/Endpunkte an, sagen wir „websites“.
Dann benötigen Sie eine Regel für „Check certificates“, die folgende Werte setzt (siehe Abbildung 5):
„Service name / Name“: $HOSTNAME$
„Host address or name“: $HOSTNAME$
Condition „Folder“: „websites“
Alle anderen Werte können wie gewünscht gestaltet werden. Wenn Sie nun einen Host namens „www.ip-insider.de“ im Ordner „websites“ erstellen, greift der Check sofort und führt im Monitoring den entsprechenden Service auf. Standardmäßig lautet dieser dann „CERT www.ip-insider.de“, weil „CERT“ als Präfix gesetzt wird.
Freilich lässt sich an der Stelle auch mit weiteren Variablen arbeiten, insbesondere denen für Host-Alias und -Adresse. Am Ende bekommen Sie jedenfalls hübsche Übersichten, wenn Sie mit speziellen Ordnern arbeiten, ohne separate Ansichten und Filter zu erstellen (siehe Abbildung 6).
Moment! Schauen Sie nochmal genau auf Abbildung 6: Der Host „www.ip-insider.de“ steht hier auf CRIT, weil für die Regel nicht „$HOSTNAME$“ verwendet wurde, sondern „www.$HOSTNAME$.de“ – Sie können das ganz nach Belieben zusammenbauen.
Abbildung 6: Überwachte Webseiten im Überblick – durch simplen Filter auf den Host-Ordner.
(Bild: Lang | Checkmk)
check_cert als Solo-Tool
Wenn Sie lieber mit anderen System, Skripten oder spontan auf der Kommandozeile monitoren wollen, müssen Sie check_cert selbst kompilieren. Das funktioniert bisher verhältnismäßig problemlos. Nun, wenn Sie häufiger mal kompilieren wissen Sie, dass „verhältnismäßig“ nicht immer reibungslos bedeutet.
Im vorigen Artikel zu check_httpv2 finden Sie eine etwas ausführlichere Anleitung zum Kompilieren – da es mit check_cert aber genauso funktioniert, nur eben mit ausgetauschtem Paketnamen, hier nur die Kurzversion.
Installation mit Hilfe des Rust-Toolchain-Managers rustup unter Ubuntu 24.04 und auf dem Master-Branch von Checkmk:
Checkmk wirbt zwar selbst für check_cert und check_httpv2 als eigenständige Tools, aber so lange der Build-Vorgang nicht stets aktuell dokumentiert wird, kann es immer zu kleinen Problemchen kommen.
Der Einsatz ist dann aber wieder einfach – wenn auch nicht ganz so einfach, wie innerhalb von Checkmk, wie dieses Beispiel zeigt:
Zumindest zwei Angaben dürften hier nicht sofort klar sein: „not-after“ meint die von oben bekannte Restlaufzeit von 20/40 Tagen – allerdings angegeben in Sekunden. Und bei „signature-algorithm“ steht die OID für was? Wissen Sie nicht sofort? Natürlich für „ecdsa-with-SHA256“ … Es mag eine Geschmacksfrage sein, aber Tage und sprechende Namen würden auch den Kommandozeilenoptionen gut stehen!
Die sonstigen Optionen entsprechen aber der Checkmk-GUI.
Durch die sehr strikte und bewusst auf Fehler gebürstete Konfiguration gäbe es hier nun einige Gründe für Warnungen, etwa Laufzeit und Schlüsselgröße. Auch das Signaturverfahren entspricht nicht dem gewünschten Algorithmus – schade, dass nur der Fund auch im Klartext angegeben wird und die Konfiguration bei der OID verbleibt.
Das neue Tool check_cert dürfte für viele Monitoringprojekte interessant sein. Wenn Checkmk das Duo check_cert und check_httpv2 noch etwas offensiver auch als Standalone-Tools vermarkten würde, wäre die Aufmerksamkeit aber vermutlich ungleich größer! Wenn man mal wünschen dürfte: Eigene Repos, stabile Build-Prozeduren, etwas Feintuning an den Cptionen und vielleicht sogar ein paar fertige Binaries für Nicht-Entwickler.
Alle Folgen des „Workshop: Monitoring mit Checkmk“ bei IP-Insider