Als alternatief kun je gebruikmaken van webservices zoals freessl.org, die ook gratis Let’s-Encrypt-certificaten verstrekken. Daar geef je de hostnaam op (bijv. firewall.example.com) en klik je op ‘Create a free SSL certificate’. Als het certificaat voor meerdere hosts moet gelden, voer de hostnamen dan in gescheiden door komma’s en zonder spaties. De hosts komen in het veld ‘Subject Alternative Name’ (SAN) in het certificaat te staan.
Als je een geldig e-mailadres invoert, zal Let’s Encrypt je er per mail aan herinneren dat het huidige certificaat moet worden verlengd. Maar je krijgt je certificaat ook als je daar een fantasie-mailadres opgeeft.
FreeSSL.org regelt gratis Let’s-Encrypt-certificaten. Zorg ervoor dat de hostnaam correct is en laat het sleuteltype en de verificatie op RSA en DNS staan.
Sleutel genereren
Om ervoor te zorgen dat de voor TLS benodigde privé-sleutel geheim blijft, is het aan te raden om die samen met de publieke sleutel lokaal in je eigen browser te genereren. Klik daarvoor op ‘Browser Create’ en Create. Je browser genereert dan automatisch een sleutelpaar van het type RSA met 2048 bitlengte. Het is niet eenvoudig om te controleren of de andere methoden van sleutelgeneratie betrouwbaar zijn. Voor de optie ‘Local Create’ moet bijvoorbeeld een KeyManager van een andere website geïnstalleerd worden. We raden aan de andere methoden te vermijden.
Certificaat laten ondertekenen
Om Let’s Encrypt je certificaat te laten ondertekenen, begint de DNS-verificatie na de sleutelgeneratie. Open daarvoor in een ander browservenster de configuratie van de verantwoordelijke DNS-server voor je domein. Kopieer het TXT-record dat FreeSSL weergeeft en sla het op de DNS-server op. De naam van het TXT-record volgt het patroon: _acme-challenge.example.com. De token hoort thuis in het corresponderende TXT-veld. Klik op Validation.
Gegevens downloaden
De browser toont vervolgens de private key en de certificaatgegevens (je certificaat en het intermediate-certificaat van Let’s Encrypt). Alle componenten kunnen als zip-archief worden opgeslagen via ‘Download File’. Dat archief bevat twee bestanden: het certificaat full_chain.pem (dat wordt door de HTTPS-server aan clients geleverd) en de private.key voor de TLS-authenticatie van de server.
Andere opties
Met het commando openssl kun je ook andere sleuteltypes en lengtes genereren. Die hoef je dan alleen nog maar door een Certificate Signing Request (CSR) te laten ondertekenen. Een voorbeeld:
openssl req -newkey rsa:4096 -sha256 -nodes -keyout mijnserver.key -out mijnserver.csr -subj ‘/CN=mijnserver.example.com’ -addext ‘subjectAltName=DNS:mijnserver.example.com’
Het bestand mijnserver.key bevat de private-key. Bewaar die ergens veilig. Een geschikte plek is bijvoorbeeld de wachtwoordmanager KeePass. Het uitvoerbestand mijnserver.csr bevat het ondertekeningsverzoek dat begint met ‘Begin Certificate Request’. Selecteer op de website van FreeSSL de optie ‘I have a CSR’ en kopieer je aanvraag naar het juiste veld. De DNS-verificatie zal dan op dezelfde manier werken als voor de sleutels die door de browser gegenereerd worden.