Microsoft Exchange Server 2019 – Certificat SSL gratuit avec Let’s Encrypt

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 :

Exchange - Erreur certificat SSL

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".

Win-ACME sur Windows Server

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)".

Exchange Win-ACME - Etape 1

Vous devez préciser quels sont les noms DNS à couvrir avec le certificat. Pour cela, indiquez "2" pour effectuer une saisie manuelle.

Exchange Win-ACME - Etape 2

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.

Exchange Win-ACME - Etape 3

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.

Exchange Win-ACME - Etape 4

Ensuite, vous devez choisir le type de clé privée à utiliser. Choisissez "RSA Key" avec le choix "2".

Exchange Win-ACME - Etape 5

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.

Exchange Win-ACME - Etape 6

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.

Exchange Win-ACME - Etape 7

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

Exchange Win-ACME - Etape 8

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 :

Exchange Win-ACME - Etape 9

Ensuite, vous devez indiquer "3" car nous n'avons pas d'autres étapes d'installation à ajouter.

Exchange Win-ACME - Etape 10

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).

Exchange Win-ACME - Etape 11

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".

WinACME Let's Encrypt pour Exchange

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 !

Tuto Exchange - Certificat Let's Encrypt

Par ailleurs, ce certificat SSL est visible dans le Centre d'administration Exchange, à cet emplacement : serveurs > certificats.

Centre administration Exchange - Certificat Let's Encrypt

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 !

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Florian BURNEL

Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.

Nombre de posts de cet auteur : 5580.Voir tous les posts

2 thoughts on “Microsoft Exchange Server 2019 – Certificat SSL gratuit avec Let’s Encrypt

  • 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 😉

    Répondre
  • 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.

    Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.