J’ai récemment essayé un certain nombre de plateformes GroupWare (entre autres : Zimbra Open Source Edition et bien sûr Microsoft Exchange) pour intégrer le logiciel anti-pourriel de Vircom, modusGate. J’ai adopté Linux (en particulier Ubuntu ou Red Hat auparavant) pour les serveurs, donc j’étais très familier avec openssl et la création de demandes de certificats, d’autorités de certification locales et de certificats auto-signés. Mais créer un certificat auto-signé pour Exchange 2003-2007-2010 sous Windows? Aucune idée! Cela s’est avéré assez facile en fait, mais j’ai quand même passé beaucoup trop d’heures à le comprendre. J’espère que cet article vous guidera dans le processus pour vous éviter de perdre autant de temps que moi.
Mon environnement de test était similaire à celui de nombreuses organisations : le serveur de messagerie/groupware fait partie d’un domaine LAN (MyNetwork) et d’un sous-réseau (/24), a un nom NetBios (WellsFargo), un nom d’hôte interne complet (wellsfargo.mynetwork.local) et un nom d’hôte complet pour un usage public et externe (webmail.mycompany.com). Je ne vais pas entrer dans les bases de la gestion de plusieurs domaines (interne/externe) et supposer que vous connaissez la situation.
L’une des exigences du certificat SSL est qu’il doit fonctionner à la fois à l’interne (pour les ordinateurs des employés sur le réseau local) et à l’externe pour l’accès public ou en itinérance (employés sur la route, travail à domicile). Étant donné que la configuration par défaut d’Exchange crée un certificat qui n’est lié qu’au nom d’hôte local (wellsfargo) et au nom d’hôte complet (wellsfargo.mynetwork.local), les navigateurs et les appareils mobiles ont fait apparaître des erreurs de certificat SSL (vol d’identité) ou tout simplement échouer (Android mobile) lors de l’accès à la messagerie Web à l’externe.
Les certificats auto-signés ne sont généralement pas recommandés pour les environnements de production, car ils incitent les navigateurs à émettre un avertissement indiquant que le certificat n’est pas émis par une autorité de certification reconnue (Verisign, Thawte, etc.), mais étant donné le prix extrême des certificats SSL, il y a quelques scénarios où cela a tout à fait du sens :
- Pour un environnement d’accès limité : il y a un certain nombre d’ordinateurs connus qui accèdent au webmail. Il vous suffit d’installer le certificat (et son certificat CA) sur chaque ordinateur qui accédera au serveur https
- Pour un environnement d’essai
Voici un guide étape par étape et comment créer votre propre certificat auto-signé (gratuitement) à l’aide de Windows (j’ai utilisé 2003 mais cela devrait fonctionner sur 2008 également) et Exchange 2003-2007-2010.
(1) Ouvrez un shell de gestion Exchange (allez dans le menu Démarrer -> Microsoft Exchange). Vous pouvez également démarrer une console Powershell 2.0 standard et charger le complément Exchange en émettant les applets de commande PS :
[PS] C:>
add-PSSnapin *exchange*
[PS] C:>
Get-PsSnapIn -Registered
(2) Dans l’interface de gestion de la circonscription (SGE), énumérez les certificats existants et les services qu’ils peuvent utiliser :
[PS] C:>Get-ExchangeCertificate
Thumbprint Services Subject
27A2E4F546791A7D079E24FAD2EC4599B8D95152
IP.WS
CN=wellsfargo
(3) Dans EMS, créez une nouvelle demande de certificat avec d’autres noms de domaine (pour vos noms d’hôte internes et externes)
[PS] C:>
New-ExchangeCertificate -generaterequest -subjectname dc=com,dc=mycompany,o=My Company Inc,cn=webmail.mycompany.com" -domainname webmail.mycompany.com,webmail.mynetwork.local,wellsfargo.mynetwork.local,wellsfargo -PrivateKeyExportable $true -path certrequest_wellsfargo.csr
[cta id= »18654″]
Vous aurez maintenant une nouvelle demande de certificat qui a été enregistrée dans le fichier CSR C:certrequest_wellsfargo.csr ». Une nouvelle commande de l’applet de commande Get-ExchangeCertificate affichera la nouvelle liste des certificats, qui comprend la nouvelle demande de certificat. À ce stade, le RSE n’a pas été certifié, il peut donc être utilisé.
REMARQUE : Il existe de nombreuses autres façons de créer une demande de certificat sur Windows et IIS, mais je recommande fortement cette méthode car c’est la seule que j’ai pu trouver qui vous permet de spécifier une liste de noms de domaine alternatifs (ce qui est une exigence pour plusieurs organisations exécutant des réseaux internes/privés et externes/publics en parallèle).
(4) Afin d’effectuer la signature du RSE, vous devrez installer les services de certificats de Microsoft sur votre ordinateur. Pour ce faire, ouvrez le Panneau de configuration, allez à Ajouter/Supprimer des composants Windows et assurez-vous que « Services de certificat » est coché.
Windows vous demandera si vous voulez installer ASP. Cliquez sur « Oui » car c’est requis. L’écran suivant vous demandera le type d’AC que vous souhaitez configurer. Sélectionnez l’autorité de certification « racine d’entreprise » et cliquez sur « Suivant ».
Vous serez ensuite invité à entrer des renseignements sur l’autorité de certification (AC) :
- Nom commun de cette AC : wellsfargo.mynetwork.local
- Suffixe de nom distinctif : DC=mynetwork,DC=local
- Période de validité : 5 ans
Cliquez sur « Suivant ». Les écrans suivants vous permettent de personnaliser le chemin de la base de données et des journaux, de le laisser par défaut et d’appuyer à nouveau sur « Suivant », et de laisser Windows installer les composants nécessaires.
(5) Nous allons maintenant nous connecter au serveur de certificats Microsoft. Ouvrez une fenêtre de navigateur Internet Explorer (comme j’ai découvert que le serveur MS Cert ne prend pas entièrement en charge FireFox et je suppose, ni Chrome) et tapez cette URL : http://wellsfargo.mynetwork.local/certsrv » ou, si votre serveur n’est configuré que pour prendre en charge SSL comme c’est le cas par défaut pour une machine Exchange dédiée, https://wellsfargo.mynetwork.local/certsrv ». On vous demandera vos identifiants de domaine, saisissez-les.
(6) Cliquez sur le lien « Demander un certificat » et sur l’écran suivant, cliquez sur « Demande de certificat avancé ». À la page Demande de certificat avancée, cliquez sur l’option « Soumettre une demande de certificat à l’aide d’un fichier CMC ou PKCS #10 encodé en base 64, ou soumettre une demande de renouvellement à l’aide d’un fichier PKCS #7 encodé en base 64 ».
(7) Ouvrez le fichier de demande de certificat que vous avez créé à l’étape 2 dans le Bloc-notes. Il ressemblera à ceci :
OTAuMjBABgkrBgEEAYI3FRQxMzAxAgEBDA9mYXJnby5pZHlsZS5sYW4MC0lEWUxF
ggEughF3ZWJtYWlsLmlkeWxlLmNvbYIPd21haWwuaWR5bGUuY29tgg9mYXJnby5p
ZHlsZS5sYW6CD3dtYWlsLmlkeWxlLmxhboIPZmFyZ28uaWR5bGUubGFugg5tYWls
qw8xdFg6L4eNMqvrW3ZOUb06Du2WOkN8A4mghgFCUDvBihyMVY6nczx+qvJkwPBo
[........]
ZHlsZS5sYW6CD3dtYWlsLmlkeWxlLmxhboIPZmFyZ28uaWR5bGUubGFugg5tYWls
qw8xdFg6L4eNMqvrW3ZOUb06Du2WOkN8A4mghgFCUDvBihyMVY6nczx+qvJkwPBo
END NEW CERTIFICATE REQUEST
(8) Collez la demande de certificat complète dans la case « Demandes enregistrées » de la page Web des services Microsoft Certifcate. Sélectionnez Modèle de certificat de serveur Web et cliquez sur.
(9) Une fois votre certificat signé et généré avec succès, sélectionnez l’option Base 64 encodé et cliquez sur Télécharger le certificat. Enregistrez le fichier sur votre ordinateur en tant que C:certselfsign_wellsfargo.cer
(10) Retournez à Exchange Management Shell (SGE) et importez le certificat nouvellement autosigné :
[PS] C:>
Import-ExchangeCertificate -path c:certselfsign_wellsfargo.cer -friendlyname My Company WellsFargo
(11) Vérifier que le certificat a été correctement importé et récupérer son empreinte du pouce avec :
[PS] C:> Get-ExchangeCertificate
Thumbprint Services Subject
9799CEEBEA4FFADE068FC73FE63EB0495DD4F8A0
.....
CN=webmail.mycompany.com, O=My Comapny Inc, DC=mycompany, DC=com
86214B8F1951E8B062955835D0C4C62D89E8D83F .....
CN=
wellsfargo.mynetwork.local
, DC=mynetwork, DC=local
27A2E4F546791A7D079E24FAD2EC4599B8D95152
IP.WS
CN=wellsfargo
Le nouveau certificat est celui pour lequel nous avons enregistré la demande en utilisant le nom d’hôte public (webmail.mycompany.com). L’autre nouveau certificat est le certificat de l’autorité de certification que nous avons installé par l’intermédiaire de Microsoft Certificate Services.
(12) La dernière étape consiste à activer le nouveau certificat pour tous les services que nous voulons utiliser. Dans notre cas, je l’activerai pour IIS (https), POP, IMAP et SMTP.
[PS] C:>
Enable-ExchangeCertificate -thumbprint
9799CEEBEA4FFADE068FC73FE63EB0495DD4F8A0
-services IIS,POP,IMAP,SMTP
[PS] C:> Get-ExchangeCertificate
Thumbprint Services Subject
9799CEEBEA4FFADE068FC73FE63EB0495DD4F8A0
IP.WS
CN=webmail.mycompany.com, O=My Comapny Inc, DC=mycompany, DC=com
86214B8F1951E8B062955835D0C4C62D89E8D83F .....
CN=
wellsfargo.mynetwork.local
, DC=mynetwork, DC=local
27A2E4F546791A7D079E24FAD2EC4599B8D95152
....S
CN=wellsfargo
Vous avez maintenant terminé. Votre internalhttps://wellsfargo.mynetwork.local et votre https://webmail.mycompany.com externe seront tous deux des certificats valides qui permettront à vos clients de se connecter via Outlook, via Outlook Web Access (OWA) et via Outlook Anywhere (RPC sur HTTPS) pour les appareils mobiles.
Comme nous l’avons mentionné précédemment, les navigateurs émettent toujours un avertissement indiquant que le certificat a été signé par une autorité de certification (AC) reconnue comme Verisign ou Thawte. Vous pouvez remplacer cet avertissement en important manuellement la Régie Webmail (certselfsign_wellsfargo.cer) et le certificat de l’AC dans tous vos ordinateurs clients.
Sous Linux, j’avais l’habitude de créer et de signer mes certificats pour qu’ils soient valides pendant quelques années, afin d’éviter d’avoir à les recréer périodiquement. C’est quelque chose que je n’ai pas pu faire avec ce processus. Lors de la création du certificat autosigné, je n’ai jamais vu d’option pour spécifier une date d’expiration (ou une durée). Quelqu’un sait-il comment?
- Comment configurer les certificats SSL pour utiliser plusieurs noms d’hôte de serveur d’accès client, http://technet.microsoft.com/en-us/library/aa995942(EXCHG.80).aspx