Указание имени сервера IIS 8.0 (SNI): масштабируемость SSL

Шон Эган

Совместимость

Версия Примечания
IIS 8.0 В IIS 8.0 появилась указание имени сервера.
IIS 7.5 Указание имени сервера не поддерживается в IIS 7.5.
IIS 7.0 Указание имени сервера не поддерживается в IIS 7.0.

Проблема.

По мере того как более электронные коммерческие сайты приходят на линию и больше предприятий хранят конфиденциальные документы в Интернете, возможность размещения и масштабирования безопасных сайтов все более важнее. До Windows Server 2012 было несколько проблем, когда речь идет о размещении безопасных сайтов:

  • Масштабируемость SSL: в мультитенантной среде, например в общей среде размещения, существует ограничение на то, сколько безопасных сайтов можно размещать на Windows Server, что приводит к низкой плотности сайта.
  • Нехватка IPv4: поскольку конечная точка сети может быть идентифицирована только с привязкой IP:Port, где клиенты запрашивают использование стандартного SSL-порта, 443, размещение защищенного сайта часто означает предложение выделенного IP-адреса для каждого клиента.

Решение

В Windows Server 2012 IIS поддерживает указание имени сервера (SNI), которое является расширением TLS для включения виртуального домена в рамках согласования SSL. Это означает, что имя виртуального домена или имя узла теперь можно использовать для идентификации конечной точки сети. Кроме того, было создано высокомасштабируемое хранилище WebHosting для дополнения SNI. Результатом является то, что плотность безопасного сайта гораздо выше в Windows Server 2012, и она достигается только с одним IP-адресом.

Следует отметить, что для использования этой функции клиентские браузеры должны поддерживать SNI. Большинство современных браузеров поддерживают SNI; Однако Internet Explorer (любой версии) в Windows XP не поддерживает SNI.

Пошаговые инструкции

Prerequisites:

  • IIS 8.0 устанавливается в Windows Server 2012.

    • Хранилище сертификатов WebHosting и SNI являются частью установки IIS по умолчанию. Из диспетчера серверов не требуется установить определенную функцию IIS.
  • Примеры сертификатов.

  • \windows\system32\drivers\etc\hosts был изменён для использования в качестве примера для сайта и сертификата. Например, если имя CN сертификата — TAPTesting, файл узлов должен содержать:

    127.0.0.1 TAPTesting
    

Обходные пути для известных ошибок:

В некоторых случаях диспетчер IIS может удалить непреднамеренные SSL-привязки, если на том же компьютере настроены традиционные привязки SSL (IP:Port) и SNI (Hostname:Port). Чтобы обойти эту проблему и (или) подтвердить фактические привязки SSL, используйте средство командной строки:

netsh http show sslcert

Импорт сертификатов в хостинг-платформу:

  1. Откройте MMC.
  2. В разделе «Файл» выберите «Добавить/Удалить оснастку»:
    Снимок экрана: меню
  3. Выберите Сертификаты. Нажмите кнопку "Добавить":
    Снимок экрана: диалоговое окно
  4. Выберите учетную запись компьютера:
    Снимок экрана, на котором показана привязка сертификатов в диалоговом окне. Выбрана учетная запись компьютера.
  5. Выберите локальный компьютер и нажмите кнопку Готово:
    Снимок экрана: диалоговое окно
  6. Нажмите кнопку "ОК":
    Снимок экрана: добавление и удаление оснастки.
  7. В области навигации найдите магазин веб-хостинга :
    Снимок экрана, на котором выделен веб-хостинг в узле «Сертификаты».
    Хранилище веб-размещения работает так же, как личное хранилище, поэтому все существующие средства для импорта и экспорта сертификатов работают одинаково. Ключевое различие между хранилищем веб-хостинга и личным хранилищем заключается в том, что хранилище веб-хостинга предназначено для масштабирования до большего числа сертификатов.
  8. Импортируйте примеры сертификатов в хранилище веб-хостинга.

Создайте безопасный веб-сайт:

  1. Откройте диспетчер служб IIS.

  2. Выберите сайты в левом окне навигации:
    Снимок экрана, показывающий диспетчер IIS. Выбраны сайты.

  3. Щелкните правой кнопкой мыши сайты и выберите "Добавить веб-сайт":
    Снимок экрана: контекстное меню для сайтов.

  4. Заполните информацию так же, как вы делаете это для любого сайта.

    • Имя сайта: проверка

    • Физический путь: c:\inetpub\wwwroot

    • Тип: https

    • Имя узла: TAPTesting

      • Это новое для Windows Server 8, поскольку можно указать имя узла для SSL.
      • Чтобы избежать ошибки несоответствия имени сертификата, убедитесь, что имя узла, указанное здесь, соответствует имени CN сертификата.
      • Фактическое значение этой конфигурации зависит от используемого примера сертификата.
    • Использование указания имени сервера: выбрано

    • SSL-сертификат: Выберите имя вашего сертификата, например: TAPTesting.

      • Обратите внимание, что сертификаты представлены как из личных , так и из магазинов веб-хостинга .

      Снимок экрана: диалоговое окно

  5. Убедитесь, что сайт создан:
    Снимок экрана, на котором показан

  6. Вот и все. Безопасный сайт был создан с помощью SNI. Интерфейс управления очень похож на традиционную привязку SSL. Единственными различиями являются:

    • Имя узла можно указать для SSL-сайта.
    • Сертификат хранится в хранилище веб-хостинга в целях масштабируемости.

Тестирование защищенного сайта:

Откройте веб-браузер и перейдите по адресу https://TAPTesting/. Обратите внимание, что в рамках предварительных требований файл узлов должен быть изменен для маршрутизации этого запроса в localhost:

Снимок экрана: Internet Explorer. I I S 8 написан в большом тексте на веб-странице.

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

netsh http show sslcert

Снимок экрана: окно командной строки. Выделены имя узла и порт.

Обратите внимание, что привязка SSL — имя узла:порт со значением TAPTesting:443.

Сценарии

Попробуйте развернуть следующие сценарии:

  • SNI предназначен для масштабирования в мультитенантной среде. Попробуйте настроить тысячи безопасных сайтов с помощью SNI.
  • В отличие от предыдущих версий Windows Server, сертификаты в Windows Server 2012 загружаются в память по запросу. После настройки тысяч безопасных сайтов с помощью SNI отправьте запрос GET на один из безопасных сайтов и просмотрите использование памяти. Это незначительно. В предыдущих версиях Windows Server, если настроены сотни безопасных сайтов, отправка только одного запроса GET приведет к загрузке всех сертификатов Windows Server, что приведет к высокой загрузке памяти и дальнейшему ограничению масштабируемости.
  • Настройте Windows Server 2012 как с SNI, так и с традиционными безопасными сайтами. Они предназначены для совместного существования.

Сводка

Вы успешно изучили функцию указания имени сервера (SNI) в Windows Server 2012.