Configuration Caddy avec certificat wildcard, reverse-proxy et DDNS
Création du jeton sur cloudflare
Sur son compte cloudflare créer le jeton avec les autorisations suivantes:
- Lecture de la Zone DNS
- Modification de la DNS
Ce qui va se passer
Ce qui donne en résumé !
N'allez pas trop vite !
à la fin le jeton est crée, il faut précieusement copier le jeton, ensuite il ne sera plus affiché !
Télécharger Caddy avec des modules supplémentaire
Caddy est extensible !Installer caddy avec l'extension cloudflare depuis la page de téléchargement du site caddy
Placer le binaire téléchargé dans /usr/bin
# Arrêt du service caddy
service caddy stop
# Déplacement du nouveau binaire vers le répertoire des binaires
mv ./caddy /usr/bin
# Attribution des droits
chmod +x /usr/bin/caddy
# Lancement du service avec le nouveau binaire à jour
service caddy start
Compiler Caddy avec les modules supplémentaire
Télécharger et installer Go
https://go.dev/dl/go1.17.5.linux-amd64.tar.gz
rm -rf /usr/local/go && tar -C /usr/local -xzf go1.17.5.linux-amd64.tar.gz
Ajouter go dans les variables d'environnement système
Ou ça ?
Emplacement du fichier: /etc/profile
Ajouter à la fin du fichier ceci:
export PATH=$PATH:/usr/local/go/bin
Téléchargez et installer xCaddy
# Installation de xCaddy depuis une source externe à Debian ( pas forcément conseillé de faire en Prod !!!)
apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/xcaddy/gpg.key' | sudo tee /etc/apt/trusted.gpg.d/caddy-xcaddy.asc
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/xcaddy/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-xcaddy.list
apt update && apt install xcaddy
xcaddy build --with github.com/caddy-dns/cloudflare --with github.com/mholt/caddy-dynamicdns
Compiler caddy avec les extensionextensions suivantes:
xcaddy build --with github.com/caddy-dns/cloudflare --with github.com/mholt/caddy-dynamicdns
Placer le binaire produit dans /usr/bin
# Arrêt du service caddy
service caddy stop
# Déplacement du nouveau binaire vers le répertoire des binaires
mv ./caddy /usr/bin
# Attribution des droits
chmod +x /usr/bin/caddy
# Lancement du service avec le nouveau binaire à jour
service caddy start
Voici ci dessous la configuration de caddy actuellement utilisé par votre serviteur
# Bloc configuration globale
{
# Desactivation de l'api de configuration
admin off
# Option TLS
email lucas.garre@gmail.com
# Config globale ACME via DNS
acme_dns cloudflare <Acme_Cloudflare_Token>
# Config HTTP3
servers {
protocol {
experimental_http3
}
}
# Configuration DDNS via CloudFlare
dynamic_dns {
provider cloudflare <Acme_Cloudflare_Token>
domains {
lgarre.fr mlh
}
}
}
# Utilisation d'un domaine Wildcard
*.lgarre.fr {
# Activation des logs pour 1 an conforément à la loi Française
log {
output file /var/log/caddy/access.json {
roll_size 1gib
roll_keep 5
roll_keep_for 365d
}
}
# Compression des données ( cause des problemes pour le moment)
#encode zstd gzip
# Configuration sites web
# Unraid
@hyperviseur host hyperviseur.lgarre.fr
handle @hyperviseur {
reverse_proxy 192.168.1.X:80
}
# Gitea
@gitea host git.lgarre.fr
handle @gitea {
reverse_proxy 192.168.1.X:80
}
# S3
@s3 host s3.lgarre.fr
handle @s3 {
reverse_proxy 192.168.1.X:80
}
# Minio
@minio host minio.lgarre.fr
handle @minio {
reverse_proxy 192.168.1.X:80
}
# Remotely
@remotely host remote.lgarre.fr
handle @remotely {
reverse_proxy 192.168.1.X:80
}
# NextCloud
@nextcloud host cloud.lgarre.fr
handle @nextcloud {
reverse_proxy 192.168.1.X:80
redir /.well-known/carddav /remote.php/dav 301
redir /.well-known/caldav /remote.php/dav 301
}
# Wordpress
@wordpress host dev-wp.lgarre.fr
handle @wordpress {
reverse_proxy 192.168.1.X:80
}
# Bookstack
@bookstack host wiki.lgarre.fr
handle @bookstack {
reverse_proxy 192.168.1.X:80
}
# Si l'hôte ne correspond pas on envoie un 404
handle {
respond "Erreur 404" 404 {
close
}
}
}



