Comment créer un certificat auto-signé avec IIS ?

I. Présentation

L'utilisation d'un serveur Web, que ce soit avec Apache, Nginx ou IIS, s'accompagne souvent de la création d'un certificat SSL, soit par l'intermédiaire de l'autorité de certification de l'entreprise, soit avec un certificat auto-signé que l'on va approuver ensuite sur nos postes clients.


Dans ce tutoriel, je vais vous expliquer comment créer un certificat auto-signé avec IIS et PowerShell. Et oui, nous n'utiliserons pas du tout l'interface graphique !

Procédure réalisée sur Windows Server 2016, très certainement compatible Windows Server 2012 R2 et Windows Server 2019.

II. Installation du rôle IIS

Si la fonctionnalité IIS n'est pas installée sur votre serveur, alors vous pouvez l'installer avec la commande PowerShell suivante :

Install-WindowsFeature -Name "Web-Server" -IncludeManagementTools

Les options par défaut seront intégrées à l'installation de IIS. Si l'installation est un succès, continuez ! 🙂

III. Générer le certificat auto-signé

Nous allons définir le domaine pour lequel nous allons générer le certificat dans la variable $Server. Ce certificat sera d'ailleurs valide 1 an, mais si cela ne vous convient pas, vous pouvez le générer pour 3 ans par exemple. Dans ce cas, utilisez les deux commandes ci-dessous ($DateToday et $DateIn3Y).

$Server = "serveurweb.it-connect.local"
$DateToday = Get-Date
$DateIn3Y = $DateToday.AddYears(3)

Exécutez la commande ci-dessous pour créer le certificat :

New-SelfSignedCertificate -DnsName $Server -CertStoreLocation "cert:\LocalMachine\My" -FriendlyName $Server -NotAfter $DateIn3Y

Le cmdlet New-SelfSignedCertificate contient le paramètre "NotAfter" que vous devez retirer si vous souhaitez un certificat seulement sur un an. Via le paramètre CertStoreLocation, on précise que le certificat doit être stocké dans le magasin personnel de l'ordinateur.

IV. Exporter et importer le certificat

Le certificat étant en votre possession : vous avez besoin de l'exporter et de l'importer sur une autre machine ? Je vous explique comment procéder. Nous allons voir comment l'importer dans le magasin de certificats et aussi approuver le serveur IIS qui génère le certificat en tant que racine de confiance.

Pour cela, nous allons commencer par récupérer l’empreinte du certificat (1ère commande) avant de l’exporter et de l’importer.

Le mot de passe pour l’export sera « MyCertByIIS» et les fichiers exportés à la racine de « C » dans le dossier "Export".

Saisissez les commandes ci-dessous sans modification :

$CertThumbprint = (Get-ChildItem -path cert:\LocalMachine\My | Where{ $_.Subject -match $Server }).Thumbprint
$CertPwd = ConvertTo-SecureString -String "MyCertByIIS" -Force –AsPlainText

Phase d’export

Pour l'export au format Pfx qui inclus le certificat et sa clé privée, on s'appuie sur Export-PfxCertificate alors que pour le certificat .CER ce sera avec la commande Export-Certificate.

Export-PfxCertificate -Cert cert:\LocalMachine\My\$CertThumbprint -FilePath C:\Export\MyCert.pfx -Password $CertPwd
Export-Certificate -Cert Cert:\LocalMachine\My\$CertThumbprint -FilePath C:\Export\MyCert.cer

Phase d’import

Pour l'importation au format Pfx dans les racines de confiance, il faut utiliser le chemin suivant : Cert:\LocalMachine\Root.

Import-Certificate -FilePath C:\Export\MyCert.cer -CertStoreLocation Cert:\LocalMachine\My\
Import-PfxCertificate -FilePath C:\Export\MyCert.pfx -Password $CertPwd -CertStoreLocation Cert:\LocalMachine\Root

Grâce aux différentes commandes ci-dessus, vous êtes en mesure de générer un certificat auto-signé avec PowerShell en quelques minutes !

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

Florian B.

Co-Fondateur d'IT-Connect, je souhaite partager mes connaissances et expériences avec vous, et comme la veille techno' est importante je partage aussi des actus.

florian has 1872 posts and counting.See all posts by florian

Laisser un commentaire

Votre adresse de messagerie 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.