Gratis SSL-certificaat installeren en https instellen? Via je hostingpaneel of met certbot, daarna http naar https doorsturen en mixed content voorkomen.
Een SSL-certificaat (technisch tegenwoordig een TLS-certificaat) zorgt ervoor dat je website via https:// werkt. De verbinding tussen bezoeker en server is dan versleuteld, en de browser kan controleren dat hij echt met jouw domein praat. Zonder certificaat toont de browser ‘Niet beveiligd’ naast het adres, en formulieren, inlogpagina’s en betalingen horen dan niet op je site.
Je hoeft er niet voor te betalen. Let’s Encrypt geeft gratis certificaten uit die in alle gangbare browsers worden vertrouwd. Ze zijn kort geldig en worden automatisch verlengd. Bij de meeste hostingpakketten zet je zo’n certificaat met één knop aan; op een eigen server doe je het met het programma certbot.
Een certificaat installeren is stap één. Daarna stuur je alle bezoekers van http door naar https, controleer je of de site geen onderdelen meer via http laadt, en pas als alles stabiel werkt overweeg je HSTS. Wie die volgorde aanhoudt, voorkomt doorverwijzingslussen en halve slotjes.
http://, of de browser toont ‘Niet beveiligd’.Menunamen kunnen per versie of toestel iets anders heten. Loop de stappen op volgorde af en stop zodra het werkt.
Let’s Encrypt controleert of jij het domein beheert door een bestand op je site op te vragen. Dat lukt alleen als het domein, en ook www, in de DNS naar de server wijst waar je het certificaat aanvraagt. Staat er een AAAA-record (IPv6), dan moet ook dat naar dezelfde server wijzen. Net verhuisd? Wacht dan tot de DNS-wijziging door is.
dig +short voorbeeld.nl A
dig +short www.voorbeeld.nl A
dig +short voorbeeld.nl AAAAIn vrijwel elk hostingpaneel zit een knop voor een gratis certificaat. Zoek bij je domein naar een onderdeel als SSL/TLS, SSL-certificaten of Let’s Encrypt. In DirectAdmin, cPanel en Plesk heet het net iets anders, maar het principe is hetzelfde: kies het domein, vink zowel voorbeeld.nl als www.voorbeeld.nl aan en vraag het certificaat aan. Zoek daar ook naar een optie om http automatisch naar https door te sturen.
Op een eigen Linux-server installeer je certbot met de plugin voor je webserver. Op Debian en Ubuntu kan dat via de pakketbeheerder; de makers van certbot raden ook een installatie via snap aan. Zet poort 80 en 443 open in de firewall, want de standaardcontrole loopt via poort 80.
# Debian / Ubuntu, nginx
sudo apt install certbot python3-certbot-nginx
# Apache
sudo apt install certbot python3-certbot-apache
sudo ufw allow 80/tcp
sudo ufw allow 443/tcpGeef elke naam op met -d. Met de nginx- of Apache-plugin past certbot de configuratie zelf aan, en met --redirect zet hij meteen de doorverwijzing naar https erin. Gebruik je een andere webserver, gebruik dan certonly --webroot en zet de paden zelf in je configuratie, met fullchain.pem als certificaat.
sudo certbot --nginx -d voorbeeld.nl -d www.voorbeeld.nl --redirect
# Apache
sudo certbot --apache -d voorbeeld.nl -d www.voorbeeld.nl --redirect
# andere webserver
sudo certbot certonly --webroot -w /var/www/html -d voorbeeld.nl -d www.voorbeeld.nlElke bezoeker die via http:// binnenkomt, moet met een permanente doorverwijzing (301) naar dezelfde pagina op https://. Heeft certbot of je paneel dat niet gedaan, zet het dan zelf. Laat de doorverwijzing op één plek gebeuren (webserver, paneel of CDN), anders ontstaat er snel een lus: zie ERR_TOO_MANY_REDIRECTS.
# nginx
server {
listen 80;
server_name voorbeeld.nl www.voorbeeld.nl;
return 301 https://$host$request_uri;
}
# Apache (.htaccess)
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]Open de site met en zonder www en via http://: je moet steeds op https:// uitkomen met een slotje. Met curl zie je de doorverwijzing en met openssl welke namen en welke vervaldatum het certificaat heeft. Een website-scan geeft hetzelfde beeld van buitenaf.
curl -sI http://voorbeeld.nl/ | head -n 3
openssl s_client -connect voorbeeld.nl:443 -servername voorbeeld.nl </dev/null 2>/dev/null | openssl x509 -noout -dates -ext subjectAltNameAfbeeldingen, scripts en interne links die nog naar http:// verwijzen, geven een half slotje of blokkades: dat heet mixed content, zie mixed content na SSL. Gebruik je WordPress, zet dan onder Instellingen › Algemeen het WordPress-adres (URL) en het Siteadres (URL) op https://; doe dat pas als https al werkt, anders kun je jezelf buitensluiten.
Test of de automatische verlenging werkt met een droge run. Mislukt die, volg dan SSL-certificaat verlopen of vernieuwen. HSTS (de browser dwingen alleen nog https te gebruiken) zet je pas aan als https een tijd stabiel werkt, en begin dan met een korte max-age. Een fout certificaat met HSTS betekent dat niemand meer kan doorklikken: zie HSTS-fout.
sudo certbot renew --dry-run
# later, nginx, eerst kort:
add_header Strict-Transport-Security "max-age=300" always;Let op: Zet HSTS, en zeker includeSubDomains of preload, niet aan op de dag dat je https instelt. Gaat er daarna iets mis met het certificaat, dan kunnen bezoekers je site niet meer openen en kun je dat niet snel terugdraaien.
Certificaten verschillen in hoe grondig de uitgever controleert wíe het aanvraagt, niet in hoe goed ze versleutelen. Een gratis certificaat versleutelt even sterk als een betaald.
Een wildcardcertificaat (*.voorbeeld.nl) kan ook gratis bij Let’s Encrypt, maar dan via een DNS-controle in plaats van poort 80.
Kom je er met deze stappen niet uit, of wil je het liever niet zelf doen? We kijken online mee of komen langs. Hulp op afstand kost €20 per uur; komen we langs, dan is de prijs op aanvraag. Je weet vooraf waar je aan toe bent.
Schrijf kort wat er misgaat en wat je al hebt geprobeerd. Kies of we bellen, online meekijken of langskomen.
Ja. Een gratis certificaat van Let’s Encrypt versleutelt even sterk als een betaald certificaat. Betaalde OV- en EV-certificaten controleren alleen uitgebreider wie de aanvrager is.
Vaak opent de site nog via http:// omdat de doorverwijzing ontbreekt, of laadt de pagina onderdelen via http. Stuur http door naar https en kijk bij mixed content.
Installeer eerst het certificaat bij je hosting. Zet daarna onder Instellingen › Algemeen beide adressen op https:// en los resterende http-links op.
Een Let’s Encrypt-certificaat is kort geldig en wordt automatisch verlengd door je hosting of door certbot. Controleer wel af en toe of die verlenging werkt.
Hulp nodig van een mens? Website-onderhoud · Hosting en onderhoud · Gratis website-scan · Alle oplossingen