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 extension 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 admin@mail.frlucas.garre@gmail.com
# Config globale ACME via DNS
acme_dns cloudflare {Token-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
*.domaine.lgarre.fr {
# BlocActivation configurationdes tlslogs 1.3pour tls1 an conforément à la loi Française
log {
protocolsoutput tls1.3file /var/log/caddy/access.json {
roll_size 1gib
roll_keep 5
roll_keep_for 365d
}
}
# Compression des données encode( cause des problemes pour le moment)
#encode zstd gzip
# BlocConfiguration desites déclarationweb
des# sous-domainesUnraid
à servir
@unraid {@hyperviseur host hyperviseur.domaine.lgarre.fr
handle @hyperviseur {
reverse_proxy 192.168.1.X:80
}
@bitwarden# {Gitea
@gitea host bitwarden.domaine.git.lgarre.fr
}handle @gitea {
hostreverse_proxy git.domaine.fr192.168.1.X:80
}
@zabbix# S3
@s3 host s3.lgarre.fr
handle @s3 {
reverse_proxy 192.168.1.X:80
}
# Minio
@minio host zabbix.domaine.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 {
hostreverse_proxy wiki.domaine.fr192.168.1.X:80
}
# RenvoieSi chaquel'hôte sous-domainene matchécorrespond verspas on envoie un serveur404
webhandle par{
reverse-proxyrespond reverse_proxy"Erreur @unraid404" 192.168.x.x:80404 reverse_proxy{
@bitwardenclose
192.168.x.x:8080}
reverse_proxy @gitea 192.168.x.x:3000
reverse_proxy @zabbix 192.168.x.x:80
reverse_proxy @bookstack 192.168.x.x:80}
}




