Указание имени сервера 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
Импорт сертификатов в хранилище веб-размещения:
- Откройте MMC.
- В разделе Файл выберите Добавить или удалить оснастку:
- Выберите Сертификаты. Щелкните Добавить:
- Выберите Учетная запись компьютера:
- Выберите Локальный компьютер и нажмите кнопку Готово:
- Нажмите кнопку ОК:
- В области навигации найдите хранилище веб-размещения :
Хранилище веб-размещения работает так же, как личное хранилище, поэтому все существующие средства импорта и экспорта сертификатов работают одинаково. Основное различие между хранилищем веб-хостинга и личным хранилищем заключается в том, что хранилище веб-хостинга предназначено для масштабирования до большего количества сертификатов. - Импортируйте примеры сертификатов в хранилище веб-размещения .
Создайте безопасный веб-сайт:
Откройте диспетчер IIS.
Выберите Сайты в левом окне навигации:
Щелкните правой кнопкой мыши Сайты и выберите Добавить веб-сайт:
Введите сведения, как и любой сайт:
Имя сайта: Тест
Физический путь:
c:\inetpub\wwwroot
Тип: https
Имя узла: TAPTesting
- Это новая возможность для Windows Server 8, так как имя узла можно указать для SSL.
- Чтобы избежать ошибки несоответствия имени сертификата, убедитесь, что указанное здесь имя узла совпадает с cn-именем сертификата.
- Фактическое значение этой конфигурации зависит от используемого образца сертификата.
Использовать указание имени сервера: выбрано
SSL-сертификат: chhose имя сертификата; например: TAPTesting.
- Обратите внимание, что сертификаты предоставляются как из личного хранилища, так и из хранилищ веб-размещения .
Убедитесь, что сайт создан:
Вот и все. Безопасный сайт был создан с помощью SNI. Процесс управления очень похож на традиционную привязку SSL. Вот единственные отличия:
- Для сайта SSL можно указать имя узла.
- Сертификат хранится в хранилище веб-размещения для обеспечения масштабируемости.
Тестирование защищенного сайта:
Откройте веб-браузер и перейдите по адресу https://TAPTesting/
. Обратите внимание, что в рамках предварительного требования файл hosts должен быть изменен для маршрутизации этого запроса в localhost:
Кроме того, чтобы просмотреть новый тип привязки 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.