====== Proxy d'application : générer et utiliser un certificat wildcard *.domaine.fr avec Let’s Encrypt ======
===== Présentation =====
La publication d'une application locale utilise par défaut le nom de domaine **.msappproxy.net**.
L'utilisation d'un nom de domaine personnalisé à la place du nom de domaine **.msappproxy.net** nécessite les démarches suivantes :
* Activer un domaine personnalisé dans Azure
* Configurer un CNAME dans le DNS du domaine personnalisé vers l’URL d’Azure Application Proxy. Par exemple :
* app.mondomaine.fr → app-mondomainefr.msappproxy.net
* Téléverser dans Azure un certificat SSL correspondant au domaine personnalisé avec les caractéristiques suivantes:
* Être un PFX
* Contenir la clé privée
* Avoir pour CN et SAN *.mondomaine.fr (wildcard)
Les SAN sont obligatoires pour Chrome/Edge (sinon NET::ERR_CERT_COMMON_NAME_INVALID)
Si tout est bien configuré, Azure gère correctement HTTPS et le navigateur verra un certificat :
* CN = app.mondomaine.fr
* Délivré par l'Autorité de certification du domaine personnalisé
{{ :reseau:cloud:azure:syncroazure:designer.png |}}
Attention
Let’s Encrypt ne permet les certificats wildcard que via validation DNS, jamais par validation HTTP.
===== Installer Certbot =====
* Installer Python3 + venv + pip
apt update && apt upgrade -y
apt install python3 python3-pip python3-venv
* Créer un environnement Certbot
python3 -m venv /opt/certbot/
* Installer Certbot dedans
/opt/certbot/bin/pip install --upgrade pip
/opt/certbot/bin/pip install certbot
* Créer un lien pour l’utiliser directement :
ln -s /opt/certbot/bin/certbot /usr/bin/certbot
===== Lancer Certbot en mode DNS manuel (wildcard) =====
* Exécutez :
certbot certonly --manual --preferred-challenges=dns -d *.educ-valadon-limoges.fr -d educ-valadon-limoges.fr
* Certbot affiche la chaîne TXT à placer dans votre DNS. Exemple :
Créer un enregistrement :
Nom : _acme-challenge.domaine.fr
Valeur : D7Jks829skdllQWmy9fJsd9S3Xke
===== Ajouter l’enregistrement DNS TXT =====
* Dans votre gestionnaire DNS :
^Type^Nom^Valeur^
|TXT|_acme-challenge.domaine.fr|clé fournie par Certbot|
* Attendre 1 à 2 minutes (ou plus selon votre hébergeur DNS)
Ensuite, retournez dans le terminal et validez.
===== Récupérer les fichiers générés =====
* Certbot génére les certificats dans **/etc/letsencrypt/live/domaine.fr/** :
^Fichier^Rôle^
|fullchain.pem|Certificat complet (inclut autorités intermédiaires)|
|privkey.pem|Clé privée|
|cert.pem|Certificat individuel|
===== Convertir les fichiers en PFX pour Azure =====
Azure exige un fichier PFX avec certificat + clé privée.
openssl pkcs12 -export \
-out wildcard-domaine-fr.pfx \
- -inkey /etc/letsencrypt/live/domaine.fr/privkey.pem \
- -in /etc/letsencrypt/live/domaine.fr/fullchain.pem \
- -password pass:VotreMotDePassePFX``
* Gardez le mot de passe : Azure vous le demandera.
===== Importer le certificat dans Azure Application Proxy =====
* Se connecter au Azure Portal
* Allez dans Entra ID → Application d'entreprise
* Sélectionnez votre application publiée
* Accéder à la rubrique Proxy d'application
* Cliquer sur le lien de téléchargement du certificat
* Téléversez wildcard-domaine-fr.pfx
* Entrez le mot de passe PFX
* Enregistrez
Azure utilise maintenant votre wildcard pour ce domaine.
===== Vérifier =====
Dans le navigateur accédez à https://app.domaine.fr
Vous devez voir :
* Icône de connexion sécurisée
* Certificat émis pour : *.domaine.fr
* Aucune alerte "site non sécurisé"
===== Configurer le renouvellement automatique du certificat =====
Le certificat est valide 4 mois.