Monitor je SSL/TLS certificaten

Op 30 september 2021 waren veel, heel veel, websites plots onbereikbaar. Het had niets te maken met een DDoS aanval, een netwerkprobleem of een DNS fout. Het root-beveiligingscertificaat DST Root CA X3 van IdenTrust was verlopen. En dat certificaat was bij velen nog in gebruik. Doordat een verlopen certificaat gebruikt werd, toonde de webbrowser van de bezoeker een SSL/TLS foutmelding.

Neen, dat was geen fout van IdenTrust. Dat dit certificaat zou verlopen was al 20 jaar geweten, sinds het certificaat op 30/09/2000 gemaakt werd met een verloopdatum van 30/09/2021. Een root-certificaat zoals deze heeft een gemiddelde geldigheidsduur van 15 tot 20 jaar.

En toch waren veel website eigenaren en systeembeheerders verrast. En dat is begrijpelijk. Want een root-certificaat wat verloopt, dat komt maar zelden voor. Maar aangezien het merendeel van de root-certificaten rond 2000 en de jaren daarop uitgegeven zijn, zullen in de nabije toekomst vaker root-certificaten gaan verlopen.

Wil je meer technische achtergrondinformatie over wat er precies gebeurde op 30 september? Lees dan dit artikel op ZDNet even door alsook dit artikel op TechRadar.

Vernieuw tijdig je eigen SSL/TLS certificaten

Het verlopen van root en intermediate certificaten heb je (meestal) niet in de hand. Maar het beheer van je eigen certificaten heb je daarentegen wel zelf in de hand. Je bent zelf verantwoordelijk voor het tijdig vernieuwen van je eigen certificaten.

Sinds september 2020 kunnen SSL/TLS certificaten een maximale geldigheidsduur van 13 maanden hebben. 397 dagen om precies te zijn. Dat is heel wat korter dan voorheen toen certificaten tot wel vijf jaar geldig konden zijn. Er gaan zelf stemmen op om dit in de toekomst nog te verkorten.

Let's Encrypt certificaten hebben bijvoorbeeld al een maximale geldigheidsduur van 90 dagen. Wanneer je tal van servers hebt, dan is het haast onmogelijk om elke ~drie maanden al je certificaten te vernieuwen. Daarvoor gebruiken systeembeheerders tools zoals Certbot en acme.sh om het vernieuwen van Let's Encrypt certificaten te automatiseren.

Monitor je certificaten met een online dienst

Met een online dienst zoals die van Qualys SSL Labs, kan je de geldigheid van je eigen certificaat controleren. Dat werkt prima voor een eenmalige check, maar dan moet je nog tijdig eraan denken om je certificaat te vernieuwen. Je SSL/TLS certificaten kan je ook monitoren met een dienst zoals Oh Dear! wat je op de hoogte houdt van certificaten wat zullen verlopen.

Monitor je certificaten met Zabbix

Gebruik je Zabbix om je servers en netwerkapparatuur te monitoren? Dan kan je sinds kort ook je SSL/TLS certificaten monitoren via Zabbix. Daarvoor heb je minimaal Zabbix server versie 5.0 en Zabbix agent 2 nodig. Zabbix controleert je certificaat dan onder andere op de geldigheidsstatus, het serienummer, datum van uitgifte en de verloopdatum, de fingerprint en het algoritme.

Zabbix zal een melding genereren wanneer je certificaat binnen de 7 dagen zal verlopen. En uiteraard ook wanneer je certificaat verlopen is.

Download de officiële Zabbix template voor jouw Zabbix versie via onderstaande snelkoppelingen. Importeer de template via 'Configuration > Templates'.

Voeg een nieuw host toe, of pas een bestaande host configuratie aan. De certificaat controle zal uitgevoerd worden vanaf deze host.

Voeg in de host configuratie de template 'Template App Website certificate by Zabbix agent 2' toe.

Voeg de template toe aan je host configuratie.

Voeg de macro {$CERT.WEBSITE.HOSTNAME} toe met als waarde de FQDN van jouw website, zonder 'https://' (bv. www.nexxwave.be).

Voeg een macro toe met de FQDN van je website.

That's all it takes!

In de 'latest data' van je gemonitorde host zal je nu onder de rubriek 'General' de certificaat data kunnen terugvinden.

Zabbix zal standaard vanaf 7 dagen voor de verloopdatum een melding genereren. Deze periode kan je aanpassen met de macro {$CERT.EXPIRY.WARN} (een getal in dagen). Alle macro's en triggers vind je terug op deze pagina.