web-dev-qa-db-fra.com

Comment attribuer un certificat SSL au site IIS7 à partir d'une invite de commande

Pouvez-vous me dire s'il est possible ou non d'attribuer un certificat SSL à un site Web dans IIS7 à l'aide de l'application APPCMD?

Je connais bien la commande permettant de définir la liaison HTTPS

appcmd set site /site.name:"A Site" /+bindings.[protocol='https',bindingInformation='*:443:www.mysite.com']

et comment obtenir les correspondances actuelles 

%windir%\system32\inetsrv\Appcmd

mais n'arrive pas à trouver le moyen de mapper un site sur un certificat (par exemple, le hash des certificats, par exemple)

51
David Christiansen

La réponse est d'utiliser NETSH . Par exemple

netsh http add sslcert ipport=0.0.0.0:443 certhash='baf9926b466e8565217b5e6287c97973dcd54874' appid='{ab3c58f7-8316-42e3-bc6e-771d4ce4b201}'
51

Cela m'a beaucoup aidé: un guide simple, de Sukesh Ashok Kumar, sur la configuration de SSL pour IIS à partir de la ligne de commande. Inclut l’importation/la génération du certificat avec certutil/makecert.

http://www.awesomeideas.net/post/How-to-configure-SSL-on-IIS7-under-Windows-2008-Server-Core.aspx

EDIT: si l'URL d'origine est en panne, elle est toujours disponible via la Wayback Machine .

17
orip

Avec PowerShell et le module WebAdministration, vous pouvez procéder comme suit pour affecter un certificat SSL à un site IIS:

# ensure you have the IIS module imported
Import-Module WebAdministration

cd IIS:\SslBindings
Get-Item cert:\LocalMachine\My\7ABF581E134280162AFFFC81E62011787B3B19B5 | New-Item 0.0.0.0!443

Ce qu'il faut noter ... La valeur "7ABF581E134280162AFFFC81E62011787B3B19B5" est l'empreinte du certificat que vous souhaitez importer. Il doit donc d'abord être importé dans le magasin de certificats. La cmdlet New-Item prend l'adresse IP (0.0.0.0 pour toutes les IP) et le port.

Voir http://learn.iis.net/page.aspx/491/powershell-snap-in-configuring-ssl-with-the-iis-powershell-snap-in/ pour plus de détails.

J'ai testé cela dans Windows Server 2008 R2 ainsi que dans la pré-version de Windows Server 2012.

9
David Mohundro

@David et @orip ont raison. 

Cependant, je voulais mentionner que le paramètre ipport spécifié dans l'exemple (0.0.0.0:443) est ce que MSDN appelle l'adresse "non spécifiée (IPv4: 0.0.0.0 ou IPv6: [::])" .

Je suis allé le chercher, alors je me suis dit que je documenterais ici pour sauver du temps à quelqu'un d'autre. Cet article porte sur SQL Server, mais les informations sont toujours pertinentes:

http://msdn.Microsoft.com/en-us/library/ms186362.aspx

4
fordareh

En utilisant les réponses de ce post, j'ai créé un script unique qui a fait le tour pour moi. Cela commence par le fichier pfx, mais vous pouvez sauter cette étape.

C'est ici:

cd C:\Windows\System32\inetsrv

certutil -f -p "pa$$Word" -importpfx "C:\temp\mycert.pfx"

REM The thumbprint is gained by installing the certificate, going to cert manager > personal, clicking on it, then getting the Thumbprint.
REM Be careful copying the thumbprint. It can add hidden characters, esp at the front.
REM appid can be any valid guid
netsh http add sslcert ipport=0.0.0.0:443 certhash=5de934dc39cme0234098234098dd111111111115 appid={75B2A5EC-5FD8-4B89-A29F-E5D038D5E289}

REM bind to all ip's with no domain. There are plenty of examples with domain binding on the web
appcmd set site "Default Web Site" /+bindings.[protocol='https',bindingInformation='*:443:']
0
HockeyJ