Voordat je begint, moet je domein met een A-record naar het IP-adres van de VPS verwijzen (zo doe je dat). Zonder dat kan het certificaat niet worden uitgegeven. In de voorbeelden is het domein jouwdomein.nl.
1. Installeer Nginx en open de poorten
apt install -y nginx
ufw allow 'Nginx Full'
Open je het IP-adres van de VPS in je browser, dan zie je al de welkomstpagina van Nginx.
2. Je website
mkdir -p /var/www/jouwdomein
echo '<h1>Het werkt!</h1>' > /var/www/jouwdomein/index.html
Maak /etc/nginx/sites-available/jouwdomein aan:
server {
listen 80;
server_name jouwdomein.nl www.jouwdomein.nl;
root /var/www/jouwdomein;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
ln -s /etc/nginx/sites-available/jouwdomein /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
nginx -t controleert of er geen fouten in zitten voordat er iets wordt toegepast.
3. Het SSL-certificaat
apt install -y certbot python3-certbot-nginx
certbot --nginx -d jouwdomein.nl -d www.jouwdomein.nl
Je wordt gevraagd om een e-mailadres (om je te waarschuwen als er iets misgaat) en om de voorwaarden te accepteren. Certbot configureert Nginx zelf, inclusief de doorverwijzing van HTTP naar HTTPS.
4. Automatische vernieuwing
Certificaten zijn 90 dagen geldig en certbot vernieuwt ze automatisch. Controleer of de vernieuwing gaat werken:
certbot renew --dry-run
Als er iets misgaat
- Certbot kan het domein niet valideren: controleer met
nslookup jouwdomein.nlof het naar jouw IP-adres verwijst en of poort 80 open is. - Cloudflare: met de oranje wolk werkt het ook; geeft het uitgeven problemen, zet de wolk dan op grijs, laat het certificaat uitgeven en zet hem daarna weer op oranje.
- 502-fouten: als Nginx als proxy voor een applicatie dient (Node, PHP...), dan draait die applicatie niet of luistert ze op een andere poort.