Installer Caddy sur RHEL/Fedora comme reverse proxy
- Loïs Dutour
Table of Contents
Caddy est un reverse proxy moderne qui gère automatiquement les certificats SSL via Let’s Encrypt. Ce guide couvre l’installation sur RHEL/Fedora via le dépôt COPR officiel.
Installation
# Ajouter le dépôt officiel Caddy via COPR
sudo dnf install 'dnf-command(copr)' -y
sudo dnf copr enable @caddy/caddy -y
# Installer Caddy
sudo dnf install caddy -yConfiguration du reverse proxy
Caddy lit sa configuration depuis /etc/caddy/Caddyfile.
sudo nano /etc/caddy/CaddyfileExemple minimal pour exposer un service :
mondomaine.fr {
reverse_proxy X.X.X.X:80
}- Remplace
mondomaine.frpar ton domaine ou sous-domaine - Remplace
X.X.X.X:80par l’IP et le port du service cible
Caddy récupère automatiquement un certificat Let’s Encrypt dès que le domaine pointe vers ton serveur.
Pare-feu
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reloadDémarrage
sudo systemctl enable caddy
sudo systemctl start caddy
sudo systemctl status caddyDNS
Assure-toi que ton domaine pointe vers l’IP publique du serveur via un enregistrement A (ou CNAME). Caddy ne peut pas obtenir de certificat Let’s Encrypt sans résolution DNS fonctionnelle.
Option : HTTP Basic Auth
Protège un service par mot de passe directement dans Caddy.
Générer un hash de mot de passe
caddy hash-passwordCaddy affiche un hash bcrypt à coller dans le Caddyfile.
Exemple avec Basic Auth
mondomaine.fr {
basic_auth {
<login> $2a$14$IYHLgExjzJ2ovHKyheTWgeGq0/50okLmuojPD5XLw47n1dk65.mzO
}
reverse_proxy XX.XX.XX.XX:80
}⚠️ Ne jamais versionner un Caddyfile contenant des hashes ou des secrets dans un repo public. Utilise des variables d’environnement ou un fichier séparé non commité.
Logs et débogage
# Logs d'erreur
/var/log/caddy/
# Valider la configuration avant de recharger
sudo caddy validate --config /etc/caddy/Caddyfile
# Reformater le Caddyfile (indentation, alignement)
sudo caddy fmt --overwrite /etc/caddy/Caddyfile
# Recharger sans redémarrer le service
sudo systemctl reload caddy