Chapter 5 · 5.1
Caddy: een website met automatische https
This article hasn't been translated yet. You're reading the Dutch version.
Caddy is een webserver die zelf een certificaat van Let's Encrypt aanvraagt en op tijd vernieuwt. Je hoeft geen certbot in te stellen. Voor een nieuwe server is Caddy daarom de makkelijkste keus.
Wat moet er klaarstaan?
- Het A- en AAAA-record van je naam wijzen naar je VPS (zie Een A- en AAAA-record in Mijn Domeinen).
- Poort 80 en 443 staan open in je firewall (zie Een firewall met ufw (of nftables)). Let's Encrypt controleert via poort 80 of je de naam echt beheert.
- Er draait geen andere webserver op poort 80 of 443, zoals nginx of Apache.
Caddy installeren
anna@web1:~$ sudo apt install caddy
anna@web1:~$ systemctl status caddy
Caddy staat in de pakketbron van Debian en Ubuntu en start meteen als dienst. Wil je altijd de nieuwste versie, gebruik dan de pakketbron van Caddy zelf, volgens caddyserver.com/docs/install.
Je eerste site
Zet je bestanden in een map, bijvoorbeeld /srv/www/example.com, en open het instellingenbestand:
anna@web1:~$ sudo mkdir -p /srv/www/example.com
anna@web1:~$ echo '<h1>Het werkt</h1>' | sudo tee /srv/www/example.com/index.html
anna@web1:~$ sudo nano /etc/caddy/Caddyfile
Vervang de inhoud door:
example.com, www.example.com {
root * /srv/www/example.com
file_server
encode zstd gzip
}
anna@web1:~$ caddy validate --config /etc/caddy/Caddyfile
anna@web1:~$ sudo systemctl reload caddy
Open https://example.com. Caddy haalt het certificaat bij het eerste bezoek of binnen enkele seconden na het herladen, en stuurt http vanzelf door naar https.
Werkt het niet?
anna@web1:~$ journalctl -u caddy --since "10 minutes ago"
De meest voorkomende oorzaken: de DNS wijst nog niet naar je VPS, poort 80 is dicht, of er draait al iets anders op poort 80. Meer in Website onbereikbaar, 502 Bad Gateway of certificaatfout.
Tip: Zet in het Caddyfile bovenaan een blok met je e-mailadres. Dan kan Let's Encrypt je bereiken als er iets met je certificaten is:
{
email beheer@example.com
}