Microsoft Exchange Server 2019 – Certificat SSL gratuit avec Let’s Encrypt
Sommaire
I. Présentation
Dans ce tutoriel, nous allons apprendre à mettre en place un certificat SSL Let's Encrypt sur un serveur de messagerie Microsoft Exchange Server 2019, à l'aide de Win-ACME.
Grâce à ce certificat Let's Encrypt, entièrement gratuit, la connexion aux différents points d'entrées Exchange sera sécurisée avec un certificat valide. Par défaut, c'est un certificat SSL auto-signé qui est en place, donc il y a un avertissement qui s'affiche lorsque l'on accède au centre d'administration Exchange ou au Webmail OWA. Voici l'avertissement auquel je fais référence :
II. Prérequis
Pour suivre ce tutoriel, vous n'avez pas besoin d'acheter un certificat SSL puisque nous utilisons une solution gratuite. Voici la liste des prérequis à respecter :
- Disposer d'un serveur Microsoft Exchange Server 2019, même si cette procédure devrait pouvoir s'appliquer sur les versions antérieures
- Configurer votre réseau de façon à ce que le serveur de messagerie soit accessible depuis l'extérieur sur l'URL OWA
- Configurer les enregistrements DNS correspondants à votre nom de domaine et utilisé par Exchange (évoqué dans un précédent tutoriel)
- Pour mon cas, il s'agit de : mail.florianburnel.fr et autodiscover.florianburnel.fr
- Télécharger le client Win-ACME que nous allons utiliser pour demander un certificat Let's Encrypt
Il est à noter que sur les serveurs de messagerie Exchange à jour, la gestion des certificats s'effectue exclusivement avec PowerShell. A ce sujet, voici le message qui s'affiche sur le centre d'administration Exchange : "Pour information, La fonctionnalité d'exportation, d'importation et de renouvellement de certificats et de création et d'achèvement de la demande de certificat a été supprimée du centre d'administration Exchange. Utilisez plutôt des applets de commande."
III. Demander un certificat SSL avec Win-ACME
Commencez par télécharger le client Win-ACME, par extraire le contenu et exécuter en tant qu'administrateur "wacs.exe".
Bien qu'il soit possible d'effectuer une demande de certificat en ligne de commandes en précisant tous les arguments, nous allons procéder étape par étape, via le mode interactif. De ce fait, exécutez "wacs.exe" en tant qu'administrateur et choisissez l'option "M" correspondante à "Create certificate (full options)".
Vous devez préciser quels sont les noms DNS à couvrir avec le certificat. Pour cela, indiquez "2" pour effectuer une saisie manuelle.
Ici, indiquez l'ensemble des adresses Web utilisées par votre serveur Exchange. Dans mon cas, il y en a deux : mail.florianburnel.fr et autodiscover.florianburnel.fr. Puis, vous avez la possibilité d'indiquer un nom convivial pour le certificat mais ce n'est pas obligatoire : vous pouvez appuyer directement sur Entrée.
En ce qui concerne la méthode de validation, testez avec la méthode par défaut en effectuant le choix "2". Si cela ne fonctionne pas, vérifiez que votre serveur Web bien accessible de l'extérieur (OWA depuis l'extérieur), sinon choisissez une autre méthode de validation.
Ensuite, vous devez choisir le type de clé privée à utiliser. Choisissez "RSA Key" avec le choix "2".
Puis, l'assistant vous demande où souhaitez stocker le certificat donc indiquez "4" pour qu'il soit stocké dans le magasin des certificats de Windows. A la question suivante, vous devez préciser le magasin à utiliser, indiquer "2" pour que ce soit stocké dans le magasin personnel : ce qui est recommandé pour Exchange, d'après l'assistant. Enfin, indiquez "5" pour passer à la suite car il n'y pas d'autres endroits où nous avons besoin de stocker le certificat.
Win-ACME propose de mettre à jour les liaisons dans IIS de manière à intégrer le certificat SSL. Pour que ce soit fait, indiquez "1" une première fois, puis "1" une seconde fois pour que ce soit mis en place au niveau du site "Default Web Site" de IIS.
L'assistant nous pose la question suivante : "Souhaitez-vous ajouter une étape d'installation supplémentaire ?". La réponse est oui, nous devons exécuter un script supplémentaire donc indiquez "2". Il s'agit du script PowerShell "ImportExchange.ps1" intégré à Win-ACME donc précisez le chemin suivant :
./Scripts/ImportExchange.ps1
Après, vous devez préciser les paramètres à utiliser lors de l'exécution de ce script. Précisez ceci pour Microsoft Exchange Server :
'{CertThumbprint}' 'IIS,SMTP,IMAP' 1 '{CacheFile}' '{CachePassword}' '{CertFriendlyName}'
En image, cela donne :
Ensuite, vous devez indiquer "3" car nous n'avons pas d'autres étapes d'installation à ajouter.
A partir de là, le client Win-ACME va émettre une requête pour demander un certificat. Si la requête est acceptée, le certificat sera mis en place dans le magasin de certificats du serveur et le serveur IIS sera configuré de manière à utiliser le certificat au sein des liaisons HTTPS. En complément, une tâche planifiée nommée "win-acme renew (acme-v02.api.letsencrypt.org)" sera créée sur le serveur pour assurer le renouvellement automatique du certificat (valide 90 jours à chaque fois).
Au final, le serveur doit récupérer le certificat SSL Let's Encrypt et l'intégrer dans Exchange et IIS. La console affiche des précisions sur la tâche planifiée de renouvellement du certificat SSL. L'assistant demande si vous souhaitez exécuter cette tâche avec un utilisateur spécifique, indiquez "no".
III. Vérifier la présence du certificat dans Exchange
Dès à présent, vous pouvez vous connecter sur le Webmail OWA d'Exchange afin de vérifier que la connexion est sécurisée ! Si l'on regarde les détails du certificat, on voit qu'il s'agit bien d'un certificat Let's Encrypt valide !
Par ailleurs, ce certificat SSL est visible dans le Centre d'administration Exchange, à cet emplacement : serveurs > certificats.
IV. Conclusion
Voilà, vous venez de mettre en place un certificat SSL sur votre serveur de messagerie Microsoft Exchange ! Le certificat SSL Let's Encrypt présente l'avantage d'être gratuit et d'être renouvelé automatiquement par l'outil Win-ACME !
Bonjour Florian, j’utilise déjà cette solution mais je crois de mémoire, il faut penser a ouvrir le port 80 TCP pour que le renouvellement se fasse correctement.
Merci pour ces solution apportée … un petit tuto sur la gestion mutidomaine sur exchange avec gestion des alias serait le bienvenu 😉
Bonjour,
J’ai bien suivi votre tuto mais j’ai ce problème.
Plugin Manual generated source noua with 3 identifiers
Plugin Single created 1 order
Cached order has status invalid, discarding
[autodiscover.] Authorizing…
[autodiscover] Authorizing using http-01 validation (SelfHosting)
[autodiscover.nouakader.com] Authorization result: invalid
[autodiscover.nouakader.com] {« type »: »urn:ietf:params:acme:error:unauthorized », »detail »: »38.xxx.xxx.xx: Invalid response from https://autodiscover/public/login.htm?loginurl=%2F.well-known%2Facme-challenge%2FPrePWPTs6scJhcUaFNAQJCw85iqWGJ6xsAkQuPJLJgY\u0026errorid=0: 404″, »status »:403, »instance »:null}
[autodiscover.] Deactivating pending authorization
[mail.] Deactivating pending authorization
Create certificate failed
J’ai enlever mon nom de domaine.
Bonjour, j’arrive au même résultat. Avez vous trouvé une solution ?
Bonjour,
Je confirme, je reste bloqué sur cette même erreur alors que la première génération à bien fonctionné.
Avez vous trouvé une solution ?