Set-OPS-Public/roles/serveur_nginx/defaults/main.yml
Daniel Allaire 95dc225037 l edge publie : trois noms en TLS verifie de bout en bout
expositions n etait resolu nulle part — ni par le pare-feu d hote, qui ne filtre
pas l egress, ni par le devis de frontiere. Il n avait jamais eu besoin de
l etre : chez un locataire le trafic edge vers amont ne traverse pas le boitier.
Au site il le traverse. Une declaration peut dormir des mois avant que la
premiere fabric ne la reveille.

Une regle par amont, avec son port. Jamais une regle large : ouvrir l edge sur
tout le site annulerait ce qu une zone de publication separee cherche a obtenir.

La meme faute qu hier, avalee de la meme facon : U au lieu de underlay_mod, et
un except Exception large a transforme le NameError en note plausible. Resserre
a OSError/ValueError — une faute de frappe doit faire du bruit.

Le schema de proxy_pass suit maintenant le port, et l amont TLS est VERIFIE
contre l AC interne : relayer en TLS sans verifier ne fait que deplacer la
confiance.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Crgis8CxCWkAGFA1ecBz3q
2026-09-15 07:50:21 -04:00

61 lines
2.7 KiB
YAML

---
serveur_nginx_packages:
- nginx
- ssl-cert # fournit le certificat auto-signe (snakeoil)
serveur_nginx_service_name: "nginx"
# TLS : par defaut le certificat auto-signe Debian (snakeoil).
# A remplacer par des certificats de l'AC interne / ACME (step_ca) plus tard.
serveur_nginx_certificat: "/etc/ssl/certs/ssl-cert-snakeoil.pem"
serveur_nginx_cle: "/etc/ssl/private/ssl-cert-snakeoil.key"
# Durcissement de base.
serveur_nginx_server_tokens: "off"
serveur_nginx_ssl_protocols: "TLSv1.2 TLSv1.3"
serveur_nginx_taille_max_corps: "16m"
# Comportement des sites.
serveur_nginx_redirection_http: true # 80 -> 443
serveur_nginx_desactiver_defaut: false # retirer le site Debian par defaut
# Sites de reverse proxy declares a la main. Vide par defaut.
# S'AJOUTENT aux vhosts derives automatiquement de instance/plan/domaines.yml.
serveur_nginx_sites: []
# - nom: forge
# domaine: forge.{{ domaine_interne }}
# amont: "http://10.0.15.11:3000"
# certificat: "/etc/ssl/.../forge.pem" # optionnel, sinon snakeoil
# cle: "/etc/ssl/.../forge.key"
# Groupe edge auquel ce role s'identifie (pour filtrer le champ "edge" de
# instance/plan/domaines.yml). Permet plusieurs edges distincts a terme.
serveur_nginx_groupe: "serveur_nginx"
# Deriver automatiquement des vhosts depuis instance/plan/domaines.yml (bloc "exposition").
# Pour chaque exposition de type "web" dont l'edge vise ce groupe, un vhost est
# genere : amont = entree "amont" explicite, sinon http://<IP interne de la
# cible>:<port>. Une exposition non resolvable (cible sans hote actif, ou sans
# port) est ignoree (binding declare mais pas encore cablable).
serveur_nginx_publier_expositions: true
# Tampons d'en-tetes de reponse cote proxy — voir templates/expositions.conf.j2.
# Dimensionnes pour un cookie de session OIDC (jeton d'identite decoupe en plusieurs
# `Set-Cookie`), que le defaut de 4 Ko ne peut pas contenir.
serveur_nginx_proxy_buffer_size: "16k"
serveur_nginx_proxy_buffers: "8 16k"
serveur_nginx_proxy_busy_buffers_size: "32k"
# --- Sonde de supervision -----------------------------------------------------------
# Les ports que l'edge DOIT servir. Variable, donc mise en defaut en nommant un port qui
# n'ecoute pas, sans toucher a nginx.
serveur_nginx_sonde_ports: "80 443"
# LES PORTS OU UN AMONT TERMINE DEJA LE TLS. `proxy_pass` doit alors parler `https://` :
# du clair vers un port qui attend une poignee de main rend `400 Bad Request`, et
# l'erreur parle de requete malformee, jamais de protocole.
serveur_nginx_ports_tls: [443, 8443]
# L'AC INTERNE, POUR VERIFIER L'AMONT. Meme racine que celle qui signe le certificat que
# l'edge presente : la confiance est la meme des deux cotes de la terminaison.
serveur_nginx_ca_interne: "/etc/step/certs/root_ca.crt"