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 :
- Acquisition, puis installation d’un certificat
- Création d’une liaison SSL dans IIS
- 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.
- 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 (*).
- 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.