NederHost-ondersteuning voor acme.sh

Geplaatst op 8 mei 2019 · domeinnamen · techtalk · tips en trucs

NederHost gebruikt standaard Let’s Encrypt-certificaten voor de websites maar je kunt deze certificaten natuurlijk ook op je eigen server gebruiken. Omdat Let’s Encrypt-certificaten maximaal drie maanden geldig zijn wordt het aanvragen en verlengen van deze certificaten normaalgesproken geautomatiseerd.

Stappen

Om een Let’s Encrypt-certificaat aan te vragen wordt gebruikgemaakt van het ACME-protocol. Je doorloopt ruwweg de volgende stappen:

  • Je vraagt aan Let’s Encrypt om de gewenste namen te valideren. Let’s Encrypt stuurt een challenge waar je aan moet voldoen. De meestgebruikte challenge is het publiceren van een DNS-record met een door Let’s Encrypt bepaalde waarde.
  • Je voldoet aan de challenge door het DNS-record te publiceren.
  • Zodra je zeker weet dat de challenge werkt vraag je aan Let’s Encrypt om je hostnames te valideren. Let’s Encrypt controleert of je aan de challenge hebt voldaan.
  • Zodra je voor alle gewenste namen een geldige validatie hebt kun je het certificaat aanvragen en vervolgens installeren.

Automatiseren met acme.sh

Er is keus genoeg voor het automatiseren van deze stappen, maar een hele elegante client voor Linux/BSD-gebruikers is acme.sh. Het fijne van acme.sh is dat deze client is uitgevoerd als een shellscript dat alleen gebruikmaakt van utilities die meestal standaard aanwezig zijn (zoals grep, cut, tail en curl of wget). Je hoeft dus naast dit shellscript geen extra software te installeren.

Als je acme.sh draait dan geeft deze standaard de DNS-records weer die je moet toevoegen aan je domein. Zodra je dit hebt gedaan kun je het script dit laten weten waarna het certificaat wordt aangevraagd. Handig, maar niet echt automatisch natuurlijk.

Ondersteuning voor de NederHost DNS-API

Gelukkig bleek het toevoegen van ondersteuning voor de NederHost DNS-API redelijk eenvoudig. Het acme.sh-script heeft veel ondersteuning voor REST-achtige interfaces aan boord en dus is ondersteuning voor NederHost in 131 regels shellscript (inclusief commentaar en witregels) toegevoegd.

Als je een API-key hebt gegenereerd in Mijn NederHost dan is het aanvragen van een Let’s Encrypt-certificaat met acme.sh nu zo eenvoudig als:

export NederHost_Key=geheime_api_key
./acme.sh --issue --dns dns_nederhost \
  -d example.nl -d *.example.nl

Je kunt dit in een crontab zetten die bijvoorbeeld wekelijks wordt uitgevoerd zodat je altijd zeker weet dat je certificaat up-to-date is.

Ingebakken in acme.sh

Nadat de module uitgebreid was getest en in orde bevonden is ondersteuning voor NederHost nu toegevoegd aan het standaard acme.sh-script; je hoeft dus zelfs geen extra module meer te installeren.

Zelf aan de slag? Kijk voor meer informatie op acme.sh en in de NederHost kennisbank.

Tags

Recente blogposts