Outils pour utilisateurs

Outils du site


caddy

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
caddy [2025/01/19 17:25] – créée luccaddy [2025/01/19 18:00] (Version actuelle) luc
Ligne 13: Ligne 13:
 [[https://caddy.community/t/use-caddy-for-local-https-tls-between-front-end-reverse-proxy-and-lan-hosts/11650|inspiration]] [[https://caddy.community/t/use-caddy-for-local-https-tls-between-front-end-reverse-proxy-and-lan-hosts/11650|inspiration]]
  
-==== Principe ====+==== ;-) Principe ====
  
 Nous devons utiliser un autre certificat que celui entre caddy et le WAN, aussi nous utiliserons caddy comme autorité de certification (CA) vis à vis du backend. Car, oui, caddy peut agit comme CA. Cependant les certificats obtenus ne sont valides que vis-à-vis d'un certificat interne à caddy (mais on peut installer ce certificat partout où on veut). Nous devons utiliser un autre certificat que celui entre caddy et le WAN, aussi nous utiliserons caddy comme autorité de certification (CA) vis à vis du backend. Car, oui, caddy peut agit comme CA. Cependant les certificats obtenus ne sont valides que vis-à-vis d'un certificat interne à caddy (mais on peut installer ce certificat partout où on veut).
Ligne 19: Ligne 19:
 Caddy n'attribue des certificats qu'à des FQDN (Full Qualified Domain Name), et non des IP. Il nous faut donc une communication par DNS entre le frontend et le backend. Plutôt que de mettre un serveur DNS exprès en place, nous utiliserons les fichiers ''hosts'' des 2 serveurs Caddy n'attribue des certificats qu'à des FQDN (Full Qualified Domain Name), et non des IP. Il nous faut donc une communication par DNS entre le frontend et le backend. Plutôt que de mettre un serveur DNS exprès en place, nous utiliserons les fichiers ''hosts'' des 2 serveurs
  
-==== Etapes ====+==== Etapes :-) ==== 
 + 
 +=== 1. FRONTEND: faire confiance au certificat local de caddy === 
 +<code bash> 
 +# copier le certificat root local dans le store de l'os :  
 +cp /var/lib/caddy/.local/share/caddy/pki/authorities/local/root.crt /usr/local/share/ca-certificates/frontend.local.crt 
 + 
 +update-ca-certificates 
 + 
 +rc-service caddy stop 
 +rc-service caddy start 
 +</code> 
 + 
 +=== 2. FRONTEND -> BACKEND: copier le certificat du frontend === 
 +Copier le certificat de l'autorité de certification du frontend au backend. Sur le front end, le certificat se trouver dans ''/var/lib/caddy/.local/share/caddy/pki/authorities/local/root.crt'' 
 + 
 +On en profite pour rendre accessible ce nouveau certificat au serveur web du backend avec un bon ''chmod'' ou ''chown'' 
 + 
 +=== 3. BACKEND: configurer le https === 
 + 
 +Sur le backend, on va dire à caddy de faire confiance à ce certificat, et d'aller voir le frontend pour obtenir un certificat pour la liaison https 
 + 
 +<code > 
 +# Caddyfile 
 +https://backend.local { 
 + 
 +    tls {        
 +        ca https://frontend.local/acme/local/directory 
 +        ca_root /var/lib/frankenphp/frontend.local.crt          
 +    }      
 +    ... 
 +
 +</code> 
 + 
 +=== 4. FRONTEND: configurer le reverse proxy === 
 + 
 +On adapte le caddy file : 
 + 
 +<code> 
 +# FRONTEND Caddyfile 
 + 
 +# ACME Server 
 +frontend.local { # defining FQDN for ACME server 
 + acme_server # defining the ACME server 
 + tls internal 
 +
 + 
 +# reverse proxy vers le backend 
 +https://wiki.example.com { # defining incoming FQDN (WAN) 
 + reverse_proxy https://backend.local { 
 + header_up Host {upstream_hostport} 
 +
 +
 + 
 +</code> 
 + 
 +=== 5. FRONTEND: modifier le hosts === 
 + 
 +Proxmox inscrit des trucs dans le fichier hosts, il faut éviter d'aller dans sa zone sous peine de voir ses modifs écrasées au prochain reboot du container. 
 + 
 +Fichier ''/etc/hosts''
 +<code> 
 +127.0.0.1 localhost.localdomain localhost frontend.local <-- 
 +::1 localhost localhost.localdomain 
 +# --- BEGIN PVE --- 
 +192.168.0.18 www3.local www3 
 +xxx.yyy.z.uuu name  # <-- PAS le bon endroit 
 +# --- END PVE --- 
 +192.168.0.19 backend.local  # <-- le bon endroit 
 +</code> 
 + 
 +=== 6. BACKEND: modifier le hosts === 
 + 
 +Proxmox inscrit des trucs dans le fichier hosts, il faut éviter d'aller dans sa zone sous peine de voir ses modifs écrasées au prochain reboot du container. 
 + 
 +Fichier ''/etc/hosts''
 +<code> 
 +127.0.0.1 localhost.localdomain localhost backend.local <-- 
 +::1 localhost localhost.localdomain 
 +# --- BEGIN PVE --- 
 +192.168.0.19 wiki.local wiki 
 +xxx.yyy.z.uuu name  # <-- PAS le bon endroit 
 +# --- END PVE --- 
 +192.168.0.18 frontend.local  # <-- le bon endroit 
 +</code> 
 + 
 +=== 7. reboot ou restart tous les services ===
  
-  1. Copier le certificat de l'autorité de certification du frontend  
caddy.1737307503.txt.gz · Dernière modification : 2025/01/19 17:25 de luc