Auteur : Daniel Caron
Dernière mise à jour : Mars 2026
Ce runbook couvre l'ajout d'un nouveau service web derrière le proxy CaronTech. Deux chemins selon l'accessibilité souhaitée :
Chemin A — Service interne seulement
Station → whvu1515:443 (PKI interne) → serveur applicatif (HTTP)
Chemin B — Service exposé publiquement
Cloudflare Tunnel → whvu1010:443 (Let's Encrypt) → whvu1515:443 (PKI interne) → serveur applicatif (HTTP)
nouveauservice.carontech.net)Modifier sign-cert.ps1 sur la station admin — section $serverSANs :
"whvu1515" = @(
"whvu1515.home.carontech.net",
"wiki.carontech.net",
"photos.carontech.net",
"nouveauservice.carontech.net" # ajouter ici
)
Tester puis exécuter :
.\sign-cert.ps1 -server whvu1515 -dryrun -verbose
.\sign-cert.ps1 -server whvu1515 -verbose
Note : Le script archive l'ancien certificat et déploie le nouveau automatiquement. Nginx est redémarré automatiquement.
ssh [email protected]
sudo nano /etc/nginx/sites-available/nouveauservice.conf
#---------------------------
# NouveauService - accès interne seulement
#---------------------------
server {
listen 443 ssl;
server_name nouveauservice.carontech.net;
ssl_certificate /etc/pki/certs/whvu1515-fullchain.crt;
ssl_certificate_key /etc/pki/private/whvu1515.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
location / {
proxy_pass http://<IP-serveur>:<port>;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
sudo ln -s /etc/nginx/sites-available/nouveauservice.conf /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
| Type | Nom | Valeur |
|---|---|---|
| CNAME | nouveauservice.carontech.net |
whvu1515.home.carontech.net |
Note : Pour un service interne, le CNAME pointe vers
whvu1515directement (paswhvu1010). A moins qu'on veuille faire un split-horizon du service interne et du service externe, auquel cas on pointera verswhvu1010.
| Source | Destination | Port | Action |
|---|---|---|---|
| Zones autorisées | whvu1515 (VLAN 60) |
443 | Allow |
whvu1515 (VLAN 60) |
Serveur applicatif | <port> |
Allow |
Effectuer d'abord toutes les étapes du Chemin A (3.1 à 3.4), puis continuer avec les étapes suivantes.
ssh [email protected]
sudo certbot certonly --dns-cloudflare \
--dns-cloudflare-credentials /home/ubuntuadmin/.secrets/cloudflare.ini \
-d nouveauservice.carontech.net \
--agree-tos --no-eff-email --email [email protected]
Certificats générés dans :
/etc/letsencrypt/live/nouveauservice.carontech.net/fullchain.pem/etc/letsencrypt/live/nouveauservice.carontech.net/privkey.pemsudo nano /etc/nginx/sites-available/nouveauservice.carontech.net
# Force HTTP → HTTPS
server {
listen 80;
server_name nouveauservice.carontech.net;
location /.well-known/acme-challenge/ {
root /var/www/html;
}
location / {
return 301 https://$host$request_uri;
}
}
# Serve NouveauService via HTTPS
server {
listen 443 ssl;
server_name nouveauservice.carontech.net;
client_max_body_size 100M;
ssl_certificate /etc/letsencrypt/live/nouveauservice.carontech.net/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/nouveauservice.carontech.net/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
location / {
proxy_pass https://whvu1515.home.carontech.net:443;
proxy_set_header Host nouveauservice.carontech.net;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
sudo ln -s /etc/nginx/sites-available/nouveauservice.carontech.net /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
b710043f-c5c9-48ad-8678-a99197c1f6e2nouveauservicecarontech.netHTTPShttps://nouveauservice.carontech.netDans Cloudflare DNS, le CNAME est créé automatiquement par le tunnel. Vérifier qu'il est bien en mode Proxied (orange).
Important : Pour un service public, le CNAME interne doit pointer vers
whvu1010(paswhvu1515) afin que le trafic passe par le certificat Let's Encrypt.
| Type | Nom | Valeur |
|---|---|---|
| CNAME | nouveauservice.carontech.net |
whvu1010.home.carontech.net |
| Source | Destination | Port | Action |
|---|---|---|---|
whvu1010 (VLAN 70) |
whvu1515 (VLAN 60) |
443 | Allow (déjà en place) |
# Tester l'accès direct au service applicatif
curl http://<IP-serveur>:<port>
# Vérifier les sites actifs
ls /etc/nginx/sites-enabled/
# Vérifier le certificat PKI
openssl x509 -in /etc/pki/certs/whvu1515-fullchain.crt -noout -text | grep -A1 'Subject Alternative Name'
# Tester le proxy vers whvu1515
curl -v https://whvu1515.home.carontech.net -H "Host: nouveauservice.carontech.net"
# Vérifier les certificats Let's Encrypt
sudo certbot certificates
https://nouveauservice.carontech.net
whvu1515 et régénéréwhvu1515whvu1515whvu1010whvu1010whvu1010 (pas whvu1515!)