Installer Caddy sur RHEL/Fedora comme reverse proxy

Installation et configuration de Caddy sur RHEL/Fedora – reverse proxy, HTTPS automatique, HTTP Basic Auth et débogage.
11 June 2025 278 words Reading: 2 min Authors:
  • Loïs Dutour

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.

Caddy Linux Fedora Let's Encrypt

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 -y

Configuration du reverse proxy

Caddy lit sa configuration depuis /etc/caddy/Caddyfile.

sudo nano /etc/caddy/Caddyfile

Exemple minimal pour exposer un service :

mondomaine.fr {
    reverse_proxy X.X.X.X:80
}
  • Remplace mondomaine.fr par ton domaine ou sous-domaine
  • Remplace X.X.X.X:80 par 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 --reload

Démarrage

sudo systemctl enable caddy
sudo systemctl start caddy
sudo systemctl status caddy

DNS

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-password

Caddy 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