Назад | Перейти на главную страницу

IIS 7.5 Создание самозаверяющих сертификатов с датой проверки более года

Я создаю самоподписанные сертификаты SSL в IIS 7.5 для внутреннего использования. Проблема в том, что я хочу создать их так, чтобы они прослужили 10 лет, поскольку это только среда разработки.

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

Есть ли способ изменить это так, чтобы они были действительны в течение 10 лет?

Вы можете сделать это с помощью SelfSSL.exe инструмент, который поставляется с IIS6 Resource Kit. Вы можете получить комплект ресурсов здесь:

http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=17275

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

Откройте командную строку администратора и перейдите в каталог, в котором вы SelfSSL инструмент командной строки был установлен.

Чтобы создать новый самоподписанный сертификат SSL, срок действия которого истекает через 10 лет, выполните следующие действия:

selfssl /n:cn=www.mydomain.com /v:3650 /s:8 /k:2048

Это сгенерирует ssl, где:

  • /n:cn=www.mydomain.com - SSL предназначен для www.mydomain.com. В cn= (обычное имя) важно, не упускайте его.

  • /v:3650 - количество дней, в течение которых сертификат действителен, в данном случае десять лет

  • /s:8 - установить сертификат в id сайта 8

  • /k:2048 - используйте длину ключа 2048 бит.

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

Если вы хотите, чтобы предупреждение о том, что SSL не доверяет, при просмотре сайтов, использующих самоподписанный SSL, исчезло, вы также можете это исправить:

  1. Экспортируйте самоподписанный SSL в .pfx файл (необходимо установить пароль, обязательно запомните его)
  2. Запуск (из командной строки или Пуск -> Выполнить) mmc certmgr.msc
  3. Просмотрите к Trusted Root Certificate Authorities -> Certificates и щелкните правой кнопкой мыши, чтобы перейти к Import... вариант:

  4. Следуйте указаниям мастера и укажите .pfx для импорта нажмите «Далее» (вам понадобится пароль, который вы установили на шаге 1):

  5. На следующем шаге мастера нам нужно выбрать, какой магазин использовать. Щелкните значок Browse... кнопка, которая откроет Select Certificate Store окно. Нам нужно увидеть физические магазины, поэтому убедитесь, что в Show physical stores:

    Развернуть Trusted Root Certificate Authorities и выберите Local Computer согласно снимку экрана выше, затем нажмите OK а потом Next >

  6. Щелкните значок Finish на последнем шаге мастера, и если все в порядке, вы должны увидеть:

Предостережения и подводные камни:

  • SelfSSL может необходимо установить компоненты совместимости управления IIS6. Я не могу сказать, потому что на моих собственных машинах это уже установлено, и у меня нет виртуальной машины, чтобы проверить эту теорию, удалив их.

  • Выдать SSL для cn=www.mydomain.com и нет cn=mydomain.com если вы хотите добавить SSL в хранилище доверенных корневых центров сертификации.

OpenSSL также можно использовать для создания самоподписанного сертификата, как описано в этом ответе на переполнение стека:

https://stackoverflow.com/a/30517344/537961

Насколько я понимаю, проблема IIS 7.x заключается в том, что вы не можете установить заголовок хоста для привязки SSL.

У вас должно получиться это сделать с помощью утилиты командной строки appcmd. Сайты могут использовать один и тот же сертификат, но будут иметь разные заголовки узлов.

Если вы выполните следующие 2 команды с вашими данными, это должно настроить заголовки хоста.

c:\Windows\System32\inetsrv>appcmd set site /site.name:"local.yourdomain.com" /+bindings.[protocol='https',bindingInformation='*:443:local.yourdomain.com']

c:\Windows\System32\inetsrv>appcmd set site /site.name:"local.dev.yourdomain.com" /+bindings.[protocol='https',bindingInformation='*:443:local.dev.yourdomain.com']

К сожалению, вам нужно сделать еще кое-что, чтобы это заработало, но я не совсем уверен, что именно. Я знаю, что выполнил несколько сбросов IIS и повторно выбрал сертификаты SSL, но я не уверен в том, в каком порядке это делать. Но я знаю, что я не делал ничего такого «необычного», как использование другого инструмента.