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


можете ли вы посоветовать мне, можно ли назначить 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   2009-02-26 20:37:54

5 ответов:

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

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

Это очень помогло мне: простое руководство, Sukesh Ashok Kumar, для настройки SSL для IIS из командной строки. Включает в себя импорт/создание сертификата с certutil/makecert.

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

изменить: если исходный URL-адрес не работает, он все еще доступен через издателя..

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