De certificaataanvraag voor mijn domein mislukt in DirectAdmin. Kijk na waar
het domein, www en mail nu naartoe wijzen, of de controlemap van buitenaf
bereikbaar is en of er een doorverwijzing tussen zit. Zeg wat ik moet
aanpassen, nog niets wijzigen.
Een mislukte certificaataanvraag geeft in DirectAdmin een melding die er technisch uitziet en die je weinig vertelt. In de praktijk zit de oorzaak bijna altijd in dezelfde vijf dingen. Je kunt ze alle vijf van buitenaf nakijken, en dat is precies wat de assistent op je account voor je kan doen.
De achtergrond in één alinea: Let's Encrypt geeft alleen een certificaat af als het kan bewijzen dat jij het domein beheert. Dat bewijs haalt het op door een bestandje op te vragen op http://jouwdomein.nl/.well-known/acme-challenge/.... Lukt dat niet, dan is er geen certificaat. Alles hieronder is een reden waarom dat ophalen niet lukt.
1. Het domein wijst nog niet hierheen
De meest voorkomende oorzaak, en de meest logische: je hebt je hosting klaarstaan, maar het A-record wijst nog naar je oude provider. Let's Encrypt komt dan op de oude server uit en vindt het bestandje niet.
Twee dingen die hierbij misgaan. Je kijkt zelf op je domein en ziet de nieuwe site, omdat jij een aangepast hosts-bestand gebruikt of omdat je eigen provider al bij is. En: je hebt het record net aangepast, maar de oude TTL loopt nog na. Vraag de assistent om de doorvoering wereldwijd na te kijken en wacht tot dat klopt voordat je het opnieuw probeert.
2. De www-variant staat er niet
DirectAdmin vraagt standaard één certificaat aan voor meerdere namen: je domein, www, en meestal mail. Elke naam in die lijst wordt apart gecontroleerd. Eén naam die niet klopt, laat de hele aanvraag mislukken.
Dit gaat vaak mis bij domeinen waar www nooit is aangemaakt, of waar www naar een andere partij wijst. Oplossing: maak het www-record aan en laat het naar dezelfde plek wijzen als je domein, of haal www uit de lijst met namen in de aanvraag.
3. De mailnaam wijst elders
Dezelfde fout, andere naam. Gebruik je je mail bij een andere partij, dan wijst mail.jouwdomein.nl vaak naar die partij. Staat die naam toch in je certificaataanvraag, dan mislukt het geheel.
Haal in dat geval mail uit de lijst. Je hebt die naam niet nodig voor een werkende website, en je mailprogramma kan de servernaam van je hosting gebruiken.
4. Iets blokkeert de controlemap
De controle gaat over gewone http, niet over https, en over een map die begint met een punt. Drie dingen die daar tussen kunnen komen:
- Een doorverwijzing van alles naar https. Een regel in
.htaccessdie elk verzoek omzet is meestal geen probleem, maar een doorverwijzing naar een ander domein wel. - Een regel die mappen met een punt blokkeert. Die staat in veel beveiligingsplugins en in sommige kant-en-klare configuraties.
- Een onderhoudspagina of een plugin die alles afvangt. Dan krijgt Let's Encrypt een pagina in plaats van het bestandje.
Dit is het geval waar je de assistent echt werk kunt laten doen: laat hem van buitenaf een verzoek doen op een pad in die map en vertellen welke statuscode en welke doorverwijzingen eruit komen.
5. Je hebt net een subdomein aangemaakt
Dit is de stille. Maak je een subdomein aan en vraag je daar een certificaat voor, dan vraagt DirectAdmin niet een tweede certificaat aan: het vervangt het certificaat van je account door een nieuw exemplaar met de nieuwe naam erbij. Gaat die nieuwe naam niet door de controle, bijvoorbeeld omdat het DNS-record er nog niet is, dan kan de aanvraag mislukken terwijl je oude certificaat intussen is vervangen of verlopen.
Het gevolg zie je niet op het moment zelf, maar een paar weken later: een site die ineens een waarschuwing geeft. Wij kwamen dit tegen bij een voorbeeldsubdomein op onze eigen site.
De werkwijze die dit voorkomt: maak eerst het DNS-record voor het subdomein, controleer dat het wereldwijd zichtbaar is, en vraag daarna het certificaat aan. Zet daarnaast een controle op de einddatum van je certificaten. Dat kan de assistent voor al je websites in één opdracht:
Loop mijn websites langs en zet in een tabel welke namen op het certificaat
staan en wanneer het verloopt. Meld alles dat binnen 21 dagen afloopt.
Veelgemaakte fouten
"Ik heb het tien keer opnieuw geprobeerd." Doe dat niet. Let's Encrypt begrenst het aantal aanvragen per domein per periode. Blijf je het proberen zonder de oorzaak weg te nemen, dan loop je tegen die grens aan en moet je wachten. Zoek eerst de oorzaak, probeer dan één keer.
"De melding zegt iets over een rate limit, dus mijn server is kapot." Nee, dat is de grens uit het vorige punt. Hij loopt na een tijd weer af.
"Ik zie de nieuwe site al, dus DNS klopt." Niet per se. Jij kijkt vanaf je eigen verbinding, Let's Encrypt niet. Laat de doorvoering van buitenaf nakijken.
"Ik heb het certificaat aangevraagd en nu werkt mijn mail niet meer." Controleer welke namen op het certificaat staan. Haalde je mail eruit terwijl je mailprogramma die naam gebruikt, zet dan de servernaam van je hosting in je mailprogramma.
"Het werkte en nu is het ineens verlopen." Vaak punt 5: een aanvraag die daarna is mislukt, bijvoorbeeld voor een subdomein dat je hebt weggegooid. Vraag het certificaat opnieuw aan met alleen de namen die echt bestaan.