Wil je op je eigen server automatisch SSL-certificaten regelen, zonder er nog naar om te kijken? Dat kan met acme.sh. En het goede nieuws: bHosted wordt out-of-the-box ondersteund. Via onze DNS-API haalt en vernieuwt acme.sh je certificaten volledig automatisch, ook wildcard-certificaten. In deze blog lees je wat acme.sh is, hoe de koppeling met bHosted werkt en hoe je het in een paar stappen instelt.
Wat is acme.sh?
acme.sh is een gratis ACME-client die volledig in shell-script is geschreven. Daarmee vraag je automatisch een SSL-certificaat aan bij een certificaatautoriteit (CA) en installeer je het op je server. Een paar dingen maken acme.sh bijzonder:
- Geen extra software nodig. Het is puur shell-script. Geen Python, geen zware dependencies.
- Geen root-rechten vereist. Je draait het gewoon als normale gebruiker.
- Wildcard- en SAN-certificaten. Eén certificaat voor
*.jouwdomein.nlof meerdere domeinen tegelijk. - Automatisch vernieuwen. acme.sh zet een cronjob klaar en verlengt je certificaat op tijd. Je hoeft er niet meer naar om te kijken.
acme.sh werkt met alle CA's die het ACME-protocol (RFC 8555) ondersteunen. Denk aan Let's Encrypt, ZeroSSL (de standaard), Google Public CA en SSL.com. Zo krijg je een gratis en vertrouwd SSL-certificaat voor je website. De broncode vind je op acme.sh op GitHub.
Wat is de DNS-01 challenge?
Voordat een CA een certificaat afgeeft, moet je bewijzen dat het domein van jou is. Dat heet een challenge. Bij de DNS-01 challenge doe je dat via een DNS-record. acme.sh plaatst tijdelijk een TXT-record (_acme-challenge.jouwdomein.nl) in je DNS. De CA controleert dat record en geeft het certificaat af. Daarna wordt het record weer verwijderd.
Het grote voordeel: je server hoeft niet publiek bereikbaar te zijn op poort 80 of 443. En het is de enige manier om een wildcard-certificaat (*.jouwdomein.nl) te krijgen. Het nadeel? Zonder automatisering moet je die TXT-records steeds handmatig aanmaken en verwijderen. En precies dat lost de koppeling met bHosted op.
bHosted ondersteunt acme.sh
Goed nieuws: acme.sh heeft een officiële bHosted-plugin. Die zit standaard in acme.sh en heet dns_bhosted. Je vindt het script op GitHub: dns_bhosted.sh.
Met deze plugin praat acme.sh rechtstreeks met de DNS-API van bHosted. Het maakt automatisch de juiste TXT-records aan tijdens de challenge en ruimt ze daarna weer op. Jij hoeft niets handmatig in je DNS te zetten.
Zo stel je acme.sh in met bHosted
1. Installeer acme.sh
curl https://get.acme.sh | sh -s email=jij@voorbeeld.nl
2. Zet je bHosted-gegevens klaar
Je hebt je bHosted API-gebruikersnaam en API-wachtwoord nodig (je webservices-gegevens). Het wachtwoord geef je als MD5-hash mee, net als in het voorbeeld van de bHosted-webservices.
export BHOSTED_Username="jouw-api-gebruikersnaam"
export BHOSTED_Password="jouw-api-wachtwoord"
Optioneel pas je de TTL aan (standaard 300 seconden):
export BHOSTED_TTL=300
3. Vraag je certificaat aan
Voor één domein plus de wildcard:
acme.sh --issue --dns dns_bhosted -d voorbeeld.nl -d '*.voorbeeld.nl'
acme.sh plaatst de TXT-records via bHosted, wacht op de controle en haalt je certificaat op. Wil je Let's Encrypt als CA in plaats van de standaard ZeroSSL?
acme.sh --set-default-ca --server letsencrypt
4. Installeer het certificaat
acme.sh --install-cert -d voorbeeld.nl \
--key-file /pad/naar/key.pem \
--fullchain-file /pad/naar/fullchain.pem \
--reloadcmd "systemctl reload nginx"
Vanaf nu vernieuwt acme.sh je certificaat automatisch. De cronjob controleert dagelijks en verlengt ruim op tijd.
Heb ik dit nodig bij hosting van bHosted?
Meestal niet. Bij elk hostingpakket van bHosted krijg je namelijk al een gratis SSL-certificaat. Dat regelen wij automatisch, je hoeft niets te doen. Meer weten over de mogelijkheden? Bekijk onze SSL-certificaten.
acme.sh is vooral handig als je een eigen server of VPS beheert en daar je certificaten wilt automatiseren, terwijl je DNS bij bHosted draait. Wil je je DNS-records zelf beheren? Dat doe je eenvoudig met de DNS-editor.
Veelgestelde vragen
Is acme.sh gratis?
Ja. acme.sh is gratis en open source. De certificaten die je ermee ophaalt bij Let's Encrypt of ZeroSSL zijn ook gratis.
Werkt acme.sh met een wildcard-certificaat?
Ja. Juist via de DNS-01 challenge, en dus via de bHosted DNS-API, vraag je een wildcard-certificaat (*.jouwdomein.nl) aan.
Moet mijn DNS bij bHosted staan?
Voor de dns_bhosted-plugin wel. acme.sh beheert de TXT-records via de DNS-API van bHosted, dus je domein moet de nameservers van bHosted gebruiken. Draait je domein nog ergens anders? Verhuis je domeinnaam eenvoudig naar bHosted.
Hoe vaak vernieuwt acme.sh mijn certificaat?
Automatisch. acme.sh controleert dagelijks via een cronjob en vernieuwt ruim op tijd. Jij hoeft niets te doen.
Welke certificaatautoriteiten worden ondersteund?
Alle ACME-CA's, waaronder Let's Encrypt, ZeroSSL (standaard), Google Public CA en SSL.com.
Aan de slag
Wil je alles op één plek: hosting, domein én DNS? Bekijk onze webhosting of registreer direct jouw domeinnaam. Laat acme.sh de rest doen. Just be hosted.