SSL en HTTPS: Certbot en Let's Encrypt voor veilige websites
```html
SSL en HTTPS: Certbot en Let's Encrypt voor veilige websites
Een SSL/TLS-certificaat is tegenwoordig onmisbaar voor elke website. Het versleutelt gegevens tussen bezoekers en je server, voorkomt waarschuwingen in browsers en draagt bij aan je SEO-ranking. Gelukkig hoef je hier geen fortuin voor uit te geven dankzij Let's Encrypt en tools zoals Certbot of acme.sh. In dit artikel leer je hoe je gratis certificaten aanvraagt, automatiseert en probleemloos implementeert.
Waarom SSL/TLS en HTTPS essentieel zijn
Zonder SSL-certificaat is je website onveilig:
- Geen slotje in de adresbalk – browsers markeren HTTP-sites als "onveilig"
- Gevoelige data loopt risico – wachtwoorden, betalingen of persoonsgegevens worden onversleuteld verstuurd
- SEO-straf – Google geeft HTTPS-sites voorrang in zoekresultaten
Met Let's Encrypt is dit eenvoudig op te lossen. Deze non-profit Certificate Authority (CA) biedt gratis, vertrouwde certificaten aan die door alle moderne browsers worden erkend.
Certbot: De standaard Let's Encrypt client
Certbot is de officiële ACME-client voor Let's Encrypt. Hiermee kun je:
- Certificaten automatisch aanvragen
- HTTPS configureren voor populaire webservers (Apache, Nginx)
- Automatische renewals instellen
Certbot installeren en gebruiken
Installeer Certbot via je package manager:
sudo apt update && sudo apt install certbot
Voor een standaard webroot-validatie (Apache/Nginx):
sudo certbot --apache -d voorbeeld.nl -d www.voorbeeld.nl
Of voor Nginx:
sudo certbot --nginx -d voorbeeld.nl -d www.voorbeeld.nl
Certbot regelt dan:
- Validatie van je domein via HTTP-01 challenge
- Aanmaak van het certificaat
- Configuratie van je webserver
- Automatische renewals via cron
Alternatieven: acme.sh en mkcert
Naast Certbot bestaan er andere ACME-clients:
acme.sh – Lichtgewicht shell-alternatief
Dit shellscript is ideaal voor embedded systemen of geautomatiseerde omgevingen:
curl https://get.acme.sh | sh
acme.sh --issue -d voorbeeld.nl -w /var/www/html
mkcert – Lokale ontwikkelcertificaten
Voor lokale development zonder gedoe met Let's Encrypt:
mkcert -install
mkcert localhost 127.0.0.1 ::1
DNS-validatie voor wildcard-certificaten
Voor wildcard-certificaten (*.voorbeeld.nl) is DNS-validatie vereist. Dit werkt met DNS API-integraties:
acme.sh --issue --dns dns_transip -d *.voorbeeld.nl
Populaire DNS-providers met API-ondersteuning:
- TransIP
- Cloudflare
- DigitalOcean
- Route 53 (AWS)
Automatische renewals instellen
Let's Encrypt-certificaten verlopen na 90 dagen. Automatische renewals zijn cruciaal:
sudo certbot renew --dry-run
Voeg een cronjob toe voor periodieke checks:
0 0 * /usr/bin/certbot renew --quiet
Veelvoorkomende problemen oplossen
Enkele tips voor certificaatissues:
- Rate limits – Let's Encrypt heeft strikte limieten (50 certs/domein/week)
- Validatiefouten – Controleer DNS en bereikbaarheid op poort 80/443
- Mixed content – Zorg dat alle resources (CSS, JS) via HTTPS laden
Conclusie en volgende stappen
Met Let's Encrypt en tools als Certbot of acme.sh implementeer je gratis HTTPS zonder gedoe. Belangrijkste takeaways:
- SSL/TLS is verplicht voor moderne websites
- Automatiseer certificaatbeheer volledig
- Kies webroot of DNS-validatie afhankelijk van je use case
- Test renewals regelmatig
Voor gevorderde implementaties kun je onderzoek doen naar:
- OCSP stapling
- HSTS headers
- TLS 1.3 optimalisaties
```