reseau:cloud:haproxy
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| reseau:cloud:haproxy [2026/01/19 18:54] – [Obtenir les certificats intermédiaires ADCS] techer.charles_educ-valadon-limoges.fr | reseau:cloud:haproxy [2026/01/19 23:09] (Version actuelle) – [déposer le .pem dans /etc/haproxy/certs] techer.charles_educ-valadon-limoges.fr | ||
|---|---|---|---|
| Ligne 2: | Ligne 2: | ||
| Client => DNS => HAProxy (LXC) => oauth2-proxy => Applications internes | Client => DNS => HAProxy (LXC) => oauth2-proxy => Applications internes | ||
| + | |||
| + | HAProxy dispose d'un certificat signé par ADCS. | ||
| + | |||
| + | Les serveurs sont accessibles : | ||
| + | * en http | ||
| + | * en https avec un certificat signé par ADCS | ||
| ===== Gestion des certificats avec SNA ===== | ===== Gestion des certificats avec SNA ===== | ||
| Ligne 80: | Ligne 86: | ||
| ====== Utiliser des certificats signés par une CA Microsoft ====== | ====== Utiliser des certificats signés par une CA Microsoft ====== | ||
| - | ===== Obtenir les certificats intermédiaires ADCS ===== | ||
| - | * se connecter à http:// | ||
| - | * cliquez sur **Télécharger un certificat d' | ||
| - | {{ : | + | |
| - | + | ||
| - | * cliquez sur **Télécharger la chaîne de certificats d' | + | |
| - | + | ||
| - | {{ : | + | |
| - | + | ||
| - | * Extraire uniquement les intermédiaires | + | |
| - | + | ||
| - | < | + | |
| - | openssl pkcs7 -in certnew.p7b -print_certs -out chain-all.pem | + | |
| - | </ | + | |
| - | + | ||
| - | * Puis extraire les intermédiaires : | + | |
| - | + | ||
| - | La racine a généralement un Subject = Issuer | + | |
| - | Les intermédiaires ont Subject != Issuer | + | |
| - | + | ||
| - | Tu peux les séparer manuellement, | + | |
| - | + | ||
| - | + | ||
| - | * certificats signés par la CA Microsoft | + | |
| - | * utilisable pour les serveurs Linux (conteneurs LXC) | + | |
| - | * sans avoir de warnings SSL dans les navigateurs Windows | + | |
| - | + | ||
| - | + | ||
| - | Lien : * [[reseau: | + | |
| - | + | ||
| - | Le conteneur LXC ne peut pas demander automatiquement un certificat à la CA Microsoft. | + | |
| ===== générer une clé + CSR dans le LXC ===== | ===== générer une clé + CSR dans le LXC ===== | ||
| Ligne 154: | Ligne 130: | ||
| </ | </ | ||
| - | |||
| - | |||
| - | |||
| ===== soumettre la CSR à la CA Microsoft ===== | ===== soumettre la CSR à la CA Microsoft ===== | ||
| - | + | * Depuis un PC Windows membre du domaine, accédez à http:// | |
| - | + | ||
| - | * Depuis un PC Windows membre du domaine, accédez à http://<ADCS\_SERVER>/certsrv | + | |
| * Cliquez sur **Demander un certificat** | * Cliquez sur **Demander un certificat** | ||
| Ligne 171: | Ligne 142: | ||
| {{ : | {{ : | ||
| - | Request a certificate => | + | * copier-coller |
| - | advanced certificate request | + | |
| - | submit a certificate request by using a base‑64 encoded file | + | |
| - | Colle le contenu | + | |
| - | Sélectionne un template adapté, par exemple | + | {{ :reseau: |
| - | Web Server | + | <WRAP center round important> |
| - | Computer | + | Important : le modèle de certificat doit autoriser : |
| - | ou un template personnalisé activé pour SAN | + | |
| - | ⚠ Important : dans la console CA, le template doit autoriser : | + | * **Allow private key to be exported** => pas nécessaire |
| + | * **Supply in the request** => obligatoire pour les SAN | ||
| - | "Allow private key to be exported" | + | </ |
| - | " | + | |
| - | Télécharge | + | * Téléchargez |
| + | * le certificat au format Base64 (.cer) | ||
| + | * la chaîne **CA certificate** (Root CA + éventuellement la subCA) (.p7b) | ||
| - | le certificat au format Base64 | + | {{ : |
| - | la chaîne "CA certificate" | + | |
| - | Tu obtiendras un fichier .cer. | + | ===== Convertir le certificat et la chaîne de certificat en PEM ===== |
| + | * convertir le certificat | ||
| - | 🧱 Étape 3 — Convertir le certificat Microsoft en PEM | + | < |
| - | Dans le LXC : | + | openssl x509 -in certificat.cer -out certificat.crt |
| - | Copie le certificat | + | </code> |
| - | scp user@windows:/ | + | |
| - | Convertis-le si nécessaire : | + | * Convertir la chaîne |
| - | Shellopenssl x509 -in guac.lab.local.cer -out guac.lab.local.crtAfficher plus de lignes | + | |
| - | Copie également le certificat | + | |
| - | certutil -ca.cert rootCA.cer | + | |
| - | Puis convertis/ | + | < |
| - | Shellopenssl x509 -in rootCA.cer -out rootCA.crtAfficher plus de lignes | + | openssl pkcs7 -print_certs |
| - | (si tu as une CA intermédiaire : fais pareil) | + | </ |
| - | 📦 Étape 4 — Construire le fichier .pem pour HAProxy | + | ==== Pour HAProxy |
| - | HAProxy doit avoir un seul fichier .pem contenant : | + | |
| - | la clé privée | + | * Construire le fichier .pem final contenant |
| - | le certificat serveur | + | |
| - | la chaîne | + | |
| - | Exemple : | + | < |
| - | Shellcat guac.lab.local.crt guac.lab.local.key rootCA.crt | + | cat server.key certificat.crt chain.pem > fullchain.pem |
| - | Donne des permissions sécurisées : | + | </code> |
| - | Shellchmod 600 /etc/ | + | |
| - | 🔄 Étape 5 — Recharger HAProxy | + | * Déposer le fichier dans **/ |
| - | haproxy -c -f / | + | * Changer les droits : |
| - | systemctl reload haproxy | + | |
| - | Navigue ensuite vers : | + | < |
| - | https://guac.lab.local | + | chmod 600 /etc/haproxy/ |
| + | </ | ||
| - | Tu devrais obtenir aucune alerte SSL sur les PC du domaine Windows, car la CA Microsoft est déjà dans le magasin " | + | ==== Pour Apache2 ==== |
| - | 🔁 Répéter pour chaque application | + | * récupérer le certificat de l' |
| - | Pour : | + | |
| - | grafana.lab.local | + | < |
| - | portainer.lab.local | + | certutil -ca.cert rootCA.cer |
| - | vault.lab.local | + | </ |
| - | Tu répètes simplement | + | * convertir en .crt : |
| + | |||
| + | < | ||
| + | openssl x509 -in rootCA.cer -out rootCA.crt | ||
| + | </ | ||
| + | |||
| + | |||
| + | * Recharger HAProxy | ||
| + | |||
| + | < | ||
| + | haproxy -c -f / | ||
| + | systemctl reload haproxy | ||
| + | </ | ||
| - | génération clé + CSR | + | * pour chaque application (app1.local, |
| - | soumission à la CA Microsoft | + | |
| - | création du .pem final | + | * soumission à la CA Microsoft |
| - | dépôt dans / | + | * création du .pem final |
| + | * dépôt dans / | ||
| HAProxy détectera automatiquement le bon certificat grâce au SNI. | HAProxy détectera automatiquement le bon certificat grâce au SNI. | ||
| Ligne 253: | Ligne 226: | ||
| Private key → “Key usage: Digital Signature + Key Encipherment” | Private key → “Key usage: Digital Signature + Key Encipherment” | ||
| Key length : 2048 ou 4096 bits | Key length : 2048 ou 4096 bits | ||
| - | |||
| - | C'est LE bon template pour HAProxy. | ||
| - | |||
| - | 🧠 Résumé simple | ||
| Ligne 299: | Ligne 268: | ||
| + | sudo chown tomcat: | ||
| + | sudo chmod 600 / | ||
| + | |||
| + | |||
| + | OLUTION : désinstaller libtcnative-1 pour forcer Tomcat à repasser en JSSE | ||
| ====== Installer oauth2‑proxy dans le conteneur HAProxy ====== | ====== Installer oauth2‑proxy dans le conteneur HAProxy ====== | ||
reseau/cloud/haproxy.1768845253.txt.gz · Dernière modification : 2026/01/19 18:54 de techer.charles_educ-valadon-limoges.fr
