IIS6: создать/установить SSL самостоятельно подписанный сертификат из командной строки

Я хочу автоматизировать настройку SSL для веб-сайта в IIS6. Кажется, selfSSL и certutil могут быть использованы для этого, но сертификаты для меня новы, и я не уверен, как их собрать.

Из того, что я понимаю, мне нужно:

  • создать сертификат
  • присваивать сертификат веб-сайту
  • добавить защищенную (SSL/443) привязку к веб-сайту.

Я также хотел бы избежать создания нового сертификата, если сертификат сайта уже создан. Таким образом, я не получаю кучу лицензионных сертификатов.

Ответ 1

Я бы предложил вам посмотреть набор ресурсов IIS 6: http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=17275

В наборе ресурсов есть инструмент selfssl.exe - он автоматизирует создание, назначение и даже доверие к вновь созданному сертификату. Мы используем его совсем немного, где я работаю, чтобы гарантировать, что наши dev-боксы имеют сертификаты, которые мы можем использовать во время тестирования/разработки.

Вот командная строка, которую мы используем - она ​​создаст сертификат (для localhost) с использованием размера ключа 1024, верьте ему и сделайте его действительным в течение ~ 10 лет:

selfssl.exe /T /N:CN=localhost /K:1024 /V:3650

Если вы размещаете несколько сайтов, вам нужно будет использовать параметр /S, чтобы указать идентификатор сайта, к которому вы хотите добавить сертификат.

Примечание: это также работает как чемпион с IIS 5 на WinXP, но я никогда не пробовал его ни в одном из семейств IIS 7.

Ответ 2

Если вы используете Wix для создания вашей установки, выполните CustomAction (который просто запускает SelfSSL), сделает трюк для вас:

<CustomAction Id="InstallCert" 
              ExeCommand="selfssl.exe /N:CN=fqdn.myserver.com /V:365" /> 

<InstallExecuteSequence> 
    <Custom Action="InstallCert" After="InstallFinalize" /> 
</InstallExecuteSequence> 

Это действие будет:

  • Сгенерировать сертификат
  • Установите сертификат на Default Web Site
  • Добавьте привязку https

Объяснение командной строки:

/N:CN=[fully qualified server name]
/V: = Validity in days (365 in my example)

Вы можете указать порт с помощью переключателя /P:[port number]. По умолчанию 443 - это то, что вы хотите, чтобы вы могли его оставить.

Предостережение. Кажется, что ошибка с SelfSSL, которая, как представляется, была решена.

Если вы все еще сталкиваетесь с этим, альтернативой является переход на инструмент SSLDiag, который имеет аналогичный синтаксис:

SSLDiag.exe /selfssl /n:CN=fqdn.myserver.com /v:365

У меня нет опыта работы с другими инструментами для создания настроек (InstallShield и т.д.), но я уверен, что у них есть условия для запуска программ командной строки. В худшем случае вы можете запустить это через пакетный файл!

Надеюсь, что это поможет.