Указание имени сервера 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. Это фактически означает, что виртуальное доменное имя или имя узла теперь можно использовать для идентификации конечной точки сети. Кроме того, в дополнение к SNI было создано высокомасштабируемое хранилище WebHosting. В результате плотность безопасного сайта в Windows Server 2012 значительно выше и достигается только с одним IP-адресом.

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

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

Предварительные требования:

  • Службы IIS 8.0 установлены в Windows Server 2012.

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

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

    127.0.0.1 TAPTesting
    

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

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

netsh http show sslcert

Импорт сертификатов в хранилище веб-размещения:

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

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

  1. Откройте диспетчер IIS.

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

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

  4. Введите сведения, как и любой сайт:

    • Имя сайта: Тест

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

    • Тип: https

    • Имя узла: TAPTesting

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

    • SSL-сертификат: chhose имя сертификата; например: TAPTesting.

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

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

  5. Убедитесь, что сайт создан:
    Снимок экрана: выделен элемент Test (Тест) в узле Sites (Сайты).

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

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

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

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

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

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

netsh http show sslcert

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

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

Сценарии

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

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

Итоги

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