Partager via


Composant logiciel enfichable PowerShell : configuration de SSL avec le composant logiciel enfichable IIS PowerShell

par l’équipe IIS

L’activation de SSL implique trois étapes :

  1. Acquisition, puis installation d’un certificat
  2. Création d’une liaison SSL dans IIS
  3. Attribution du certificat à l’adresse IP:Port de la liaison IIS

et éventuellement :

  • Application du protocole SSL sur votre site web

Acquisition, puis installation d’un certificat

L’acquisition de certificats est une activité délicate. Les utilisateurs de votre site web doivent faire confiance au certificat et, par conséquent, vous devez l’obtenir auprès d’une autorité de certification de confiance. À des fins de test, vous pouvez toutefois créer votre propre certificat. Pour cette procédure pas à pas, nous allons utiliser un certificat auto-signé. L’outil qui nous aide à créer un certificat auto-signé est appelé MAKECERT et fait partie des outils de Visual Studio SDK Tools. La commande MAKECERT suivante crée un certificat auto-signé, puis l’installe automatiquement dans le magasin de certificats « mon » Windows :

makecert -r -pe -n "CN=MyTestServer" -b 07/01/2008 -e 07/01/2010 -eku 1.3.6.1.5.5.7.3.1 -ss my -sr localMachine -sky exchange -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12

Vous pouvez examiner les certificats dans le magasin de certificats à l’aide du fournisseur de certificats :

PS IIS:\> dir cert:\localmachine\my
    Directory: Microsoft.PowerShell.Security\Certificate::localmachine\my
Thumbprint                                Subject
----------                                -------
7ABF581E134280162AFFFC81E62011787B3B19B5  CN=MyTestServer

Remarque

Votre empreinte de certificat sera différente !

Maintenant, nous allons utiliser le composant logiciel enfichable IIS PowerShell pour créer une liaison SSL, puis l’associer au certificat que nous venons de créer.

Création d’une liaison SSL

Nous ajoutons la liaison SSL au site web par défaut à l’aide de l’une des cmdlets basées sur des tâches, cmdlet appelée New-WebBinding :

PS IIS:\> New-WebBinding -Name "Default Web Site" -IP "*" -Port 443 -Protocol https

Vous pouvez examiner la collection de liaisons à l’aide de la commande suivante :

PS IIS:\> Get-WebBinding 'Default Web Site'
protocol                                          bindingInformation
--------                                          ------------------
http                                              *:80:
https                                             *:443:

Attribution du certificat à l’adresse IP:Port de la liaison IIS

Maintenant,la tâche devient un peu difficile, car les paramètres SSL sont stockés dans le magasin de configuration HTTP.SYS et les conventions d’affectation de noms sont légèrement différentes.

  1. Dans HTTP.SYS vous devez utiliser 0.0.0.0.0 pour spécifier toutes les adresses IP ; dans IIS, vous utilisez un astérisque (*).
  2. Dans IIS, vous utilisez « : » pour séparer la liaison. Étant donné que PowerShell voit un signe deux-points comme indicateur de lecteur, un point d’exclamation est utilisé à la place :

Vous pouvez accéder au répertoire IIS:\SslBindings, puis interroger les liaisons SSL existantes. Le répertoire sera vide sur une installation par défaut IIS :

PS IIS:\> cd SslBindings
PS IIS:\SslBindings> dir

Vous pouvez maintenant utiliser le code hachage de certificat que nous avons obtenu à l’étape 1, puis l’associer à toutes les adresses IP (0.0.0.0.0) et le port SSL 443 :

PS IIS:\SslBindings> get-item cert:\LocalMachine\MY\7ABF581E134280162AFFFC81E62011787B3B19B5 | new-item 0.0.0.0!443

La commande précédente a généré la liaison SSL suivante :

IP Address       Port Store            Sites
----------       ---- -----            -----
0.0.0.0          443  My               Default Web Site

SSL est prêt maintenant et vous pouvez accéder à votre site en entrant https://localhost.

Résumé

Le processus de configuration de SSL avec PowerShell est assez simple. Vous devez obtenir un certificat, créer une liaison SSL dans IIS, puis utiliser l’adresse IP et le port de la liaison IIS pour créer une liaison SSL dans HTTP.SYS.