Microsoft IIS (Internet Information Services) utilise le format PFX pour les certificats SSL — différent des fichiers PEM que GetHTTPS et la plupart des outils Linux produisent. Ce guide couvre la conversion de votre certificat et son installation sur IIS 10.
Prérequis
- Windows Server avec IIS 10 installé
- Fichiers de certificat de GetHTTPS :
cert.pem,privkey.pem,chain.pem - OpenSSL installé (inclus avec Git for Windows, ou à installer séparément)
Étape 1 : Convertir PEM en PFX
IIS ne peut pas lire les fichiers PEM directement. Convertissez au format PFX avec OpenSSL :
openssl pkcs12 -export -out certificate.pfx -inkey privkey.pem -in cert.pem -certfile chain.pem
Vous serez invité à définir un mot de passe d’exportation — retenez-le pour l’étape d’importation.
Pas d’OpenSSL ? Si Git for Windows est installé, OpenSSL se trouve à
C:\Program Files\Git\usr\bin\openssl.exe. Ou téléchargez-le depuis slproweb.com/products/Win32OpenSSL.html.
Pour en savoir plus sur les formats de certificats : PEM, PFX, DER expliqués
Étape 2 : Importer le PFX dans IIS
- Ouvrez le Gestionnaire IIS (exécutez
inetmgr) - Cliquez sur le nom de votre serveur dans le panneau gauche
- Double-cliquez sur Certificats de serveur dans le panneau central
- Cliquez sur Importer… dans le panneau Actions à droite
- Naviguez vers votre fichier
certificate.pfx - Entrez le mot de passe d’exportation défini à l’Étape 1
- Sélectionnez le magasin de certificats : Hébergement Web (ou Personnel)
- Cliquez sur OK
Le certificat apparaît maintenant dans la liste des Certificats de serveur.
Étape 3 : Lier HTTPS à votre site
- Dans le Gestionnaire IIS, développez Sites dans le panneau gauche
- Faites un clic droit sur votre site web → Modifier les liaisons…
- Cliquez sur Ajouter…
- Configurez :
- Type : https
- Port : 443
- Nom d’hôte :
yourdomain.com(laissez vide pour tous les noms d’hôtes) - Certificat SSL : sélectionnez le certificat que vous venez d’importer
- Cliquez sur OK
- Répétez pour
www.yourdomain.comsi nécessaire
Étape 4 : Rediriger HTTP vers HTTPS
Installez le module URL Rewrite (s’il n’est pas déjà installé), puis ajoutez au web.config de votre site :
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="HTTP to HTTPS" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
Étape 5 : Vérifier
Ouvrez https://yourdomain.com dans un navigateur. Cliquez sur le cadenas pour vérifier les détails du certificat.
Vérification PowerShell :
# Vérifier le certificat lié au port 443
netsh http show sslcert
Dépannage
« A specified logon session does not exist »
La clé privée n’a pas été correctement importée. Réexportez le fichier PFX avec :
openssl pkcs12 -export -out certificate.pfx -inkey privkey.pem -in cert.pem -certfile chain.pem -passout pass:VotreMotDePasse
Assurez-vous que le PFX a été créé à partir de fichiers clé + certificat correspondants.
Le certificat n’apparaît pas dans le menu déroulant de liaison
L’importation a peut-être échoué silencieusement. Vérifiez l’Observateur d’événements → Journaux Windows → Application pour les erreurs. Assurez-vous que le mot de passe PFX est correct et que le fichier n’est pas corrompu.
« This site is not secure » après la liaison
Vérifiez que la chaîne de certificats est complète. Le fichier chain.pem doit être inclus dans la conversion PFX (-certfile chain.pem). Sans lui, les navigateurs ne peuvent pas vérifier la chaîne de confiance.
Questions fréquentes
Puis-je utiliser un certificat Let’s Encrypt avec IIS ?
Oui. Les certificats Let’s Encrypt fonctionnent avec n’importe quel serveur, y compris IIS. La seule étape supplémentaire est la conversion de PEM en format PFX. GetHTTPS vous donne des fichiers PEM ; la commande OpenSSL ci-dessus les convertit.
Existe-t-il un outil comme Certbot pour IIS ?
win-acme (anciennement letsencrypt-win-simple) est le client ACME le plus populaire pour Windows/IIS. Il gère l’émission de certificats, la conversion PFX, la liaison IIS et le renouvellement automatique en un seul outil. Utilisez-le si vous voulez Let’s Encrypt entièrement automatisé sur IIS.
Comment renouveler sur IIS ?
- Obtenir un nouveau certificat depuis GetHTTPS
- Convertir en PFX :
openssl pkcs12 -export -out new.pfx -inkey privkey.pem -in cert.pem -certfile chain.pem - Importer le nouveau PFX dans le Gestionnaire IIS → Certificats de serveur
- Mettre à jour la liaison du site pour utiliser le nouveau certificat
- Supprimer l’ancien certificat des Certificats de serveur
Pour le renouvellement automatique, envisagez win-acme — il gère l’ensemble du cycle automatiquement.
IIS prend-il en charge les certificats ECDSA/ECC ?
IIS 10 sur Windows Server 2016+ prend en charge les certificats ECDSA. GetHTTPS génère par défaut ECDSA P-256, qui fonctionne avec les versions modernes d’IIS. Les anciennes versions d’IIS (8.5 et inférieures) peuvent nécessiter des certificats RSA.
Puis-je utiliser IIS avec plusieurs sites sur la même IP ?
Oui. IIS 8+ prend en charge SNI (Server Name Indication), qui permet plusieurs certificats SSL sur la même adresse IP. Lors de l’ajout de la liaison HTTPS, cochez « Exiger l’indication du nom du serveur » et entrez le nom d’hôte. Chaque site peut avoir son propre certificat.
Comment trouver OpenSSL sous Windows ?
OpenSSL n’est pas inclus par défaut dans Windows. Sources courantes :
- Git for Windows l’inclut à
C:\Program Files\Git\usr\bin\openssl.exe - Chocolatey :
choco install openssl - Builds Win32/Win64 : téléchargement depuis slproweb.com
Après l’installation, ajoutez-le à votre PATH ou utilisez le chemin complet dans les commandes.