Как назначить сертификат SSL для сайта IIS7 из командной строки - PullRequest
51 голосов
/ 26 февраля 2009

Можете ли вы посоветовать мне, можно ли назначать сертификат SSL для веб-сайта в IIS7 с помощью приложения APPCMD?

Я знаком с командой для установки привязки HTTPS

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

и как получить текущие сопоставления

%windir%\system32\inetsrv\Appcmd

но не может найти какой-либо способ сопоставить сайт с сертификатом (скажем, например, хэш сертификатов)

Ответы [ 5 ]

51 голосов
/ 07 мая 2009

Ответ - использовать NETSH. Например

netsh http add sslcert ipport=0.0.0.0:443 certhash='baf9926b466e8565217b5e6287c97973dcd54874' appid='{ab3c58f7-8316-42e3-bc6e-771d4ce4b201}'
17 голосов
/ 17 октября 2010

Это мне очень помогло: простое руководство Сукеша Ашока Кумара по настройке SSL для IIS из командной строки. Включает импорт / создание сертификата с certutil / makecert.

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

РЕДАКТИРОВАТЬ: если исходный URL не работает, он все еще доступен через Wayback Machine .

9 голосов
/ 07 августа 2012

С PowerShell и модулем WebAdministration вы можете сделать следующее, чтобы назначить SSL-сертификат сайту 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

Что следует отметить ... значение "7ABF581E134280162AFFFC81E62011787B3B19B5" является отпечатком сертификата, который вы хотите импортировать. Поэтому его нужно сначала импортировать в хранилище сертификатов. Командлет New-Item принимает IP-адрес (0.0.0.0 для всех IP-адресов) и порт.

Подробнее см. http://learn.iis.net/page.aspx/491/powershell-snap-in-configuring-ssl-with-the-iis-powershell-snap-in/.

Я проверял это в Windows Server 2008 R2, а также в предварительной версии Windows Server 2012.

4 голосов
/ 01 декабря 2011

@ Дэвид и @orip правильно поняли.

Однако я хотел упомянуть, что параметр ipport , указанный в примере (0.0.0.0:443), является тем, что MSDN называет «неопределенным адресом (IPv4: 0.0.0.0 или IPv6: [ ::])».

Я пошел посмотреть, и решил, что запишу здесь, чтобы сэкономить время. Эта статья посвящена SQL Server, но информация по-прежнему актуальна:

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

1 голос
/ 12 января 2018

Используя ответы из этого поста, я создал один скрипт, который помог мне. Он начинается с файла pfx, но вы можете пропустить этот шаг.

Вот оно:

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:']
...