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 и т.д.), но я уверен, что у них есть условия для запуска программ командной строки. В худшем случае вы можете запустить это через пакетный файл!
Надеюсь, что это поможет.