Chapitre 5 · 5.1
Caddy : un site web avec HTTPS automatique
Caddy est un serveur web qui demande lui-même un certificat Let's Encrypt et le renouvelle à temps. Vous n'avez pas besoin de configurer certbot. Pour un nouveau serveur, Caddy est donc le choix le plus simple.
Que faut-il préparer ?
- Les enregistrements A et AAAA de votre nom pointent vers votre VPS (voir Un enregistrement A et AAAA dans Mes domaines).
- Les ports 80 et 443 sont ouverts dans votre pare-feu (voir Un pare-feu avec ufw (ou nftables)). Let's Encrypt vérifie via le port 80 que vous gérez réellement le nom.
- Aucun autre serveur web, comme nginx ou Apache, ne tourne sur le port 80 ou 443.
Installer Caddy
anna@web1:~$ sudo apt install caddy
anna@web1:~$ systemctl status caddy
Caddy se trouve dans le dépôt de paquets de Debian et d'Ubuntu et démarre immédiatement en tant que service. Si vous souhaitez toujours disposer de la dernière version, utilisez le dépôt de paquets de Caddy lui-même, en suivant caddyserver.com/docs/install.
Votre premier site
Placez vos fichiers dans un dossier, par exemple /srv/www/example.com, puis ouvrez le fichier de configuration :
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
Remplacez son contenu par :
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
Ouvrez https://example.com. Caddy obtient le certificat lors de la première visite ou dans les secondes qui suivent le rechargement, et redirige automatiquement http vers https.
Cela ne fonctionne pas ?
anna@web1:~$ journalctl -u caddy --since "10 minutes ago"
Les causes les plus fréquentes : le DNS ne pointe pas encore vers votre VPS, le port 80 est fermé, ou un autre programme tourne déjà sur le port 80. Pour en savoir plus, consultez Site web inaccessible, 502 Bad Gateway ou erreur de certificat.
Astuce : Ajoutez en haut du Caddyfile un bloc avec votre adresse e-mail. Let's Encrypt pourra ainsi vous contacter en cas de problème avec vos certificats :
{
email beheer@example.com
}