Как назначить SSL-сертификат сайту IIS7 из командной строки

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

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

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

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

%windir%system32inetsrvAppcmd

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

5 ответов


ответ заключается в использовании NETSH. Например

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

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

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

EDIT: если исходный URL-адрес неактивен, он по-прежнему доступен через машину Wayback.


С помощью PowerShell и модуля WebAdministration можно выполнить следующие действия для назначения SSL-сертификата сайту IIS:

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

cd IIS:\SslBindings
Get-Item cert:\LocalMachine\MyABF581E134280162AFFFC81E62011787B3B19B5 | New-Item 0.0.0.0!443

Примечание... значение "7ABF581E134280162AFFFC81E62011787B3B19B5" является отпечаток для сертификата, который вы хотите импортировать. Поэтому сначала его нужно импортировать в хранилище сертификатов. The принимает 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 pre-release.


@David и @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


используя ответы из этого сообщения, я создал один скрипт, который сделал трюк для меня. Он начинается с файла 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:']