[Exchange/O365/Labs] Lets Encrypts – Générer un certificat Exchange & Office 365


Un petit article à nouveau. J

Si vous voulez faire vos tests sur o365 ou exchange parfois on il est obligatoire d’avoir un certificat d’une autorité publique. Pour Office 365 par exemple, pour de l’ADFS ou de l’hybride ou encore les migrations cutovers, staged c’est un prérequis obligatoire.

C’est là qu’entre en jeu Lets Encrypts. Avant, StartSSL délivrer des certificats gratuitement SAN (jusqu’à 5 hosts) mais depuis ils se sont fait absorber par Wotrust

J’insiste sur un point : (deux même)

  1. Les certificats lets encrpyts sont bien en effet, mais uniquement pour du labo, pas en PROD !!!!
  2. Les certificats lets encrypts ne sont valables que 90 jours. (Renouvelable auto ou manuel) > raisons de revenir au point numéro 1

Mes VMs sont sur Azure, donc les ports 443/80 doivent être ouverts.

Les choses sont dites passons maintenant à « comment qu’on fait »

Premièrement il faut que toutes vos URLs soient disponibles depuis internet et accessibles (même si erreur de certificats pour l’instant, c’est le but justement)

Pourquoi 😕 Parce que Lets Encrypts vérifie que vos urls sont valides. Donc si vous souhaitez valider « ViagraPourEtreBienDansSaPeau.com », il faudra qu’il soit accessible via Internet. (je n’ai pas testé l’url 😀 )

Étape 1 :

Il faut d’abord créer un dossier à la racine de IIS sur site par défaut. (le site1, vous verrez plus tard)

Uniquement en PowerShell, car les . ne sont pas autorisé en GUI

Mdkir .well-known\acme-challenge

Ensuite vous allez sur IIS, defaut web site > Acme challenge

Puis cliquez sur SSL Setting

On désactive « Require SSL »

On retourne sur acme-challenge, puis on créer un MIME TYPE avec pour valeur :
. et application/octet-stream

Lets encrypts va maintenant avoir les autorisations pour vérifier & valider via la méthode FILESYSTEM et/ou http-01 (voir FAQ de lets encrypts)

Étape 2 :

Téléchargez Lets encrypts pour Windows è
https://github.com/Lone-Coder/letsencrypt-win-simple/releases

On génère le certificat. Ici pas besoin de générer de CSR. Il s’en occupe.

Les cmdlets se font en PowerShell. Par contre on a le choix, on peut soit le faire en mode INTERACTIVE, Manuel ou semi-automatique en quelque sorte.

En mode semi-automatique, lets encrypts (le programme) vous génère (public key, private key) , valide, et installe le certificat pour vous sur les « bindings ». Pas mal non.

On peut choisir quel site, (via des numéros > 1, 2 , 3) Ou

1 > représente le 1 site

2> représente le deuxième site

Etc…

Tout cela sur IIS.

Moi, j’ai utilisé la méthode semi-automatique, car l’interactive n’a pas fonctionné ; Je n’ai pas encore regardé pourquoi et ce n’est probablement pas grand-chose, mais cela fonctionne très bien en mode semi-automatique.

En mode « automatique complet » on peut utiliser des plugins. Un plugin IIS existe.

On utilise le paramètre :

–plugin iissite –siteid 1

Source du plugin ; https://github.com/Lone-Coder/letsencrypt-win-simple/wiki/Target-Plugins

La commande pour générer le certificat est :

.\letsencrypt.exe –plugin manual –manualhost domain.com,sts.domain.com,archive.domain.com –webroot C:\inetpub\wwwroot\ –installation iis –siteid 1 –installationsiteid 1

La commande :

  1. Vérifie le domaine si accessible via une clé générée par lets encrypts
  2. Valide
  3. Fais la demande du certificat
  4. Génère le certificat
  5. l’installe.
  6. Mets à jour les bindings de IIS.

Il est possible que le certificat ne soit pas encore vu par OWA ou les clients. Faites un reset sur ApplicationPool dans IIS.

Maintenant depuis l’extérieur on fait un petit test & hop un certificat SAN gratuit J et valide. Depuis le LAN également sur les DNS si OK bien entendu.

On voit la validité de 90 jours ;

On peut exporter le certificat si nécessaire en ouvrant la console MMC > Add Snap > Certificates

On cherche Web Hostings.

Et un beau PFX J

Pour générer le certificat la commande :

.\letsencrypt.exe –plugin manual –manualhost domain.com,sts.domain.com,archive.domain.com –webroot C:\inetpub\wwwroot\ –installation iis –siteid 1 –installationsiteid 1

On peut ajouter le paramètre

–centralsslstore C:\CertiSSL_Lets\

Cela va exporter le certificat dans ce dossier.

Voilà, vous avez un certificat SSL valide et reconnu par tous (ou presque) les navigateurs et par Microsoft.

Emmanuel

Emmanuel à écrit 14 posts

Navigation des articles


Laisser un commentaire

Votre adresse e-mail ne sera pas affiché publiquement. Les champs obligatoires sont marqués *

Vous pouvez utiliser ces balises et attributs HTML:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>