U krijgt een appje van een klant: “Je site geeft een waarschuwing, klopt dat?” U opent hem zelf en ziet een rood of grijs scherm met de mededeling dat de verbinding niet privé is. Uw eerste gedachte is een hack. In verreweg de meeste gevallen is er iets veel saaiers aan de hand: er is een SSL-certificaat verlopen.

Vervelend is het wel. Bezoekers moeten door een waarschuwing heen klikken die eruitziet alsof uw site gevaarlijk is, en de meesten doen dat niet. Formulieren worden niet verstuurd, een webshop verliest bestellingen en Google is er ook niet blij mee. Hieronder leest u wat er gebeurt, hoe u het meestal binnen een uur oplost en hoe u zorgt dat het niet nog eens gebeurt.

Wat een certificaat doet en waarom het verloopt

Een SSL-certificaat, tegenwoordig eigenlijk een TLS-certificaat, doet twee dingen. Het versleutelt het verkeer tussen de browser van uw bezoeker en uw server, en het bevestigt dat het domein daadwerkelijk is wie het zegt te zijn. Zonder geldig certificaat kan de browser dat tweede niet vaststellen, en dan weigert hij verantwoordelijkheid te nemen. Vandaar de waarschuwing.

Certificaten hebben altijd een einddatum, en die is de laatste jaren steeds korter geworden. Gratis certificaten van Let’s Encrypt, die op heel veel Nederlandse hostingpakketten draaien, zijn negentig dagen geldig en horen zichzelf automatisch te vernieuwen. Betaalde certificaten liepen jarenlang een jaar; ook die termijn wordt korter.

Verlopen gebeurt daarom bijna nooit doordat iemand vergeet te betalen. Het gebeurt doordat de automatische vernieuwing stukloopt. De meest voorkomende oorzaken: het domein wijst niet meer naar de juiste server, er staat een omleiding of een firewallregel die de controle van Let’s Encrypt blokkeert, de site is verhuisd naar andere hosting, of er is een subdomein toegevoegd dat niet in het certificaat zit.

Hoe u vaststelt wat er aan de hand is

Voordat u iets aanpast, kijkt u wat de browser precies zegt. De foutmelding vertelt u vrijwel altijd de oorzaak.

  • “Het certificaat is verlopen” of foutcode ERR_CERT_DATE_INVALID: het certificaat is echt over de datum. Dit is het geval dat dit artikel behandelt.
  • “Het certificaat is niet geldig voor deze naam” of ERR_CERT_COMMON_NAME_INVALID: er is wel een geldig certificaat, maar niet voor dit domein. Vaak bij www versus zonder www, of bij een nieuw subdomein.
  • “Uitgever niet vertrouwd”: er staat een zelfondertekend certificaat, meestal het standaardcertificaat van de server nadat de echte is weggevallen.
  • Het hangslot ontbreekt maar er is geen waarschuwing: dan is het certificaat waarschijnlijk in orde en laadt uw site onderdelen via een onbeveiligde verbinding. Dat is een ander probleem; de oplossing staat in het artikel over mixed content.

Klik in de adresbalk op het waarschuwingsteken en vervolgens op de certificaatgegevens. Daar staan de geldigheidsdata en voor welke domeinnamen het certificaat is uitgegeven. Met die twee gegevens weet u genoeg.

Zo lost u het op

  1. Log in op uw hostingpaneel en zoek het onderdeel SSL, TLS of Certificaten. Bij DirectAdmin, cPanel en Plesk heet dat vrijwel altijd zo.
  2. Kijk of vernieuwen met één knop kan. Bij Let’s Encrypt is er meestal een knop “Vernieuwen” of “Certificaat aanvragen”. Vaak is dat genoeg en staat het binnen enkele minuten goed.
  3. Controleer de aangevinkte domeinnamen. Zorg dat zowel uw domein als de www-variant is aangevinkt, plus eventuele subdomeinen die u gebruikt.
  4. Loopt de aanvraag stuk, controleer dan de DNS. Wijst uw domein wel naar de server waar u nu op inlogt? Na een recente verhuizing is dat de meest voorkomende oorzaak.
  5. Schakel tijdelijk omleidingen of een firewall uit als de validatie blijft mislukken. Een omleiding van alle verkeer naar https kan de controle van Let’s Encrypt in de weg zitten. Draait er een dienst als Cloudflare voor uw site, zet die dan even in de doorgeefstand.
  6. Leeg alle caches na een geslaagde vernieuwing: uw cachingplugin, de servercache en de cache van uw eigen browser. Anders ziet u de oude situatie terwijl het al goed staat.
  7. Controleer in een privévenster of het slotje terug is, en test zowel de variant met als zonder www.

Lukt het binnen een halfuur niet, bel dan uw hostingpartij. Certificaten zijn hun terrein en de meeste Nederlandse hosters lossen dit in één telefoongesprek op. Wacht daar niet mee: elk uur met een waarschuwing kost bezoekers.

Wat het intussen kost

Onderschat de impact niet. Een bezoeker die een waarschuwing ziet dat de verbinding niet privé is, gaat in de regel terug naar Google. Bij een webshop stopt vrijwel alle omzet, want niemand vult betaalgegevens in achter zo’n scherm. Formulieren worden niet verstuurd, en veel koppelingen met externe diensten weigeren eveneens verbinding te maken met een site met een ongeldig certificaat, dus ook uw boekhoudkoppeling of nieuwsbriefdienst kan stilvallen.

Ook Google merkt het. Beveiligde verbindingen zijn al jaren de norm en de verwachting is dat een langdurig ongeldig certificaat gevolgen heeft voor hoe uw site wordt beoordeeld. Wees daar voorzichtig mee in uw aannames, maar het is in elk geval geen situatie die u weken wilt laten bestaan.

Voorkomen is eenvoudig

Een praktijkvoorbeeld: een tandartspraktijk in Tilburg verhuisde naar een andere hostingpartij. Alles werkte, maar de oude Let’s Encrypt-installatie op de nieuwe server had de verkeerde DNS-gegevens. Negentig dagen later, ruim na de verhuizing, verliep het certificaat en stond er ineens een waarschuwing. Niemand legde de link met de verhuizing van drie maanden eerder. Het kostte anderhalve dag zoeken; met een controle van de vervaldatum een week na de verhuizing was het nooit gebeurd.

Wat u regelt om dit te voorkomen, is beperkt:

  • Zet de vervaldatum van uw certificaat in uw agenda, met een herinnering twee weken van tevoren. Bij Let’s Encrypt controleert u een week na installatie of de automatische vernieuwing echt heeft gewerkt.
  • Gebruik een gratis monitoringdienst die u waarschuwt als het certificaat bijna verloopt of als de site onbereikbaar is. Waarom dat sowieso nuttig is, staat in de uitleg over uptime-monitoring.
  • Controleer na elke verhuizing, DNS-wijziging of toevoeging van een subdomein of het certificaat nog alle namen dekt.
  • Zorg dat waarschuwingsmails van uw hosting op een adres binnenkomen dat u daadwerkelijk leest.

Wilt u er helemaal niet meer aan denken, dan is het bewaken van certificaten en vervaldatums onderdeel van structureel websiteonderhoud. Bij WebMaintor loopt die controle mee in de maandelijkse ronde, zodat een naderende vervaldatum opvalt voordat uw klanten hem zien.

Concrete volgende stap: klik nu op het slotje in de adresbalk van uw eigen website en kijk wanneer het certificaat verloopt. Zet die datum meteen in uw agenda, met een herinnering veertien dagen ervoor.