Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Введение
Действия по настройке Secure Sockets Layer (SSL) для сайта одинаковы в IIS 7 и более поздних версиях и IIS 6.0 и включают следующие шаги.
- Получите соответствующий сертификат.
- Создайте привязку HTTPS на сайте.
- Проверьте, сделав запрос на сайт.
- При необходимости настройте параметры SSL, то есть сделайте SSL обязательным.
В этом документе приведены основные сведения о SSL, а затем показано, как включить SSL следующим образом:
- Использование диспетчера IIS.
- С помощью средства командной строки AppCmd.exe.
- Программным способом через Microsoft.Web.Administration.
- Использование скриптов WMI.
В этой статье содержатся следующие разделы:
Конфигурация SSL
Независимо от того, работаете ли ваш веб-сайт на собственном сервере или в облаке, используя SSL для защиты вашего сайта, вероятно, очень важно для вас, так как многие веб-сайты обращаются к нему для защиты конфиденциальности пользователей. Если необходимо настроить SSL на сервере, важно понимать, что реализация SSL изменилась с IIS 6.0 на IIS 7 и выше. В IIS 6.0 в Windows Server 2003 все конфигурации SSL хранились в метабазе IIS, а шифрование и расшифровка произошли в пользовательском режиме (требуется много переходов в режиме ядра или пользователя). В IIS 7 и более поздних версиях HTTP.sys обрабатывает шифрование и расшифровку SSL в режиме ядра, что приводит к повышению производительности до 20% для безопасных подключений в IIS 7 и выше, чем в IIS 6.0.
Использование SSL в режиме ядра требует хранения сведений о привязке SSL в двух местах. Во-первых, привязка хранится в %windir%\System32\inetsrv\config\applicationHost.config для вашего сайта. При запуске сайта служба IIS отправляет привязку в HTTP.sys, а HTTP.sys начинает прослушивать запросы на заданном IP:Порту (это работает для всех привязок). Во-вторых, конфигурация SSL, связанная с привязкой, хранится в конфигурации HTTP.sys. Используйте команду netsh в командной строке, чтобы просмотреть конфигурацию привязки SSL, хранящуюся в HTTP.sys, как показано в следующем примере:
netsh http show sslcert
Когда клиент подключается и инициирует согласование SSL, HTTP.sys обращается к конфигурации SSL, чтобы найти пару IP:порт, к которой подключился клиент. Конфигурация SSL HTTP.sys должна содержать хэш сертификата и имя хранилища сертификатов до успешного согласования SSL.
Совет по устранению неполадок: Если у вас возникли проблемы с привязкой SSL, убедитесь, что привязка настроена в ApplicationHost.config, а хранилище HTTP.sys содержит допустимое хэш сертификата и имя хранилища для привязки.
Выбор сертификата
При выборе сертификата рассмотрите следующее: хотите ли конечные пользователи иметь возможность проверить удостоверение сервера с помощью сертификата? Если да, создайте запрос сертификата и отправьте этот запрос в известный центр сертификации (ЦС), например VeriSign или GeoTrust, или получите сертификат из онлайн-ЦС в домене интрасети. Существует три вещи, которые браузер обычно проверяет в сертификате сервера:
- Текущие дата и время находятся в пределах диапазона "Действителен с" и "Действителен до" для сертификата.
- Общее имя (Common Name, CN) сертификата соответствует заголовку хоста в запросе. Например, если клиент запрашивает
https://www.contoso.com/, то "CN" должно бытьwww.contoso.com. - То, что поставщик сертификата — известный и доверенный УЦ.
Если одна или несколько этих проверок завершается ошибкой, браузер выдаст пользователю предупреждения. Если у вас есть интернет-сайт или сайт интрасети, где ваши конечные пользователи не знакомы лично, то всегда следует убедиться, что эти три параметра действительны.
Самозаверяющий сертификат — это сертификаты, созданные на компьютере. Они полезны в средах, где для конечного пользователя не важно доверять серверу, например тестовой среде.
Использование AppCmd
Невозможно запросить или создать сертификат с помощью AppCmd.exe. Вы также не можете использовать AppCmd.exe для создания привязки SSL.
Настройка параметров SSL
Вы можете использовать AppCmd.exe для настройки сайта для принятия только подключений HTTPS сервера, изменив атрибут sslFlags в разделе Access. Например, этот параметр можно настроить для веб-сайта по умолчанию в файле ApplicationHost.config (например, commitPath:APPHOST) с помощью следующей команды:
%windir%\system32\inetsrv>AppCmd set config "Default Web Site" -commitPath:APPHOST -section:access -sslFlags:Ssl
При успешном выполнении отображается следующее сообщение:
Applied configuration changes to section "system.webServer/security/access" for "MACHINE/WEBROOT/APPHOST/Default Web Site" at configuration commit path "MACHINE/WEBROOT/APPHOST"
Замечание
Чтобы требовать 128-разрядный SSL, измените значение sslFlags на Ssl128.
В следующем примере показано, как просмотреть <параметры доступа и> раздела для веб-сайта по умолчанию. Атрибут sslFlags был успешно задан.
%windir%\system32\inetsrv>AppCmd list config "Default Web Site" -section:access
Выполнение команды приводит к следующей записи в файле ApplicationHost.config:
<system.webServer>
<security>
<access flags="Script, Read" sslFlags="Ssl" />
</security>
</system.webServer>
Использование WMI
Невозможно запросить или создать сертификат с помощью пространства имен WMI webAdministration.
Создание привязки SSL
В следующем скрипте показано, как создать новую привязку SSL и как добавить соответствующую конфигурацию для HTTP.sys и IIS:
Set oIIS = GetObject("winmgmts:root\WebAdministration")
'''''''''''''''''''''''''''''''''''''''''''''
' CREATE SSL BINDING
'''''''''''''''''''''''''''''''''''''''''''''
oIIS.Get("SSLBinding").Create _
"*", 443, "4dc67e0ca1d9ac7dd4efb3daaeb15d708c9184f8", "MY"
'''''''''''''''''''''''''''''''''''''''''''''
' ADD SSL BINDING TO SITE
'''''''''''''''''''''''''''''''''''''''''''''
Set oBinding = oIIS.Get("BindingElement").SpawnInstance_
oBinding.BindingInformation = "*:443:"
oBinding.Protocol = "https"
Set oSite = oIIS.Get("Site.Name='Default Web Site'")
arrBindings = oSite.Bindings
ReDim Preserve arrBindings(UBound(arrBindings) + 1)
Set arrBindings(UBound(arrBindings)) = oBinding
oSite.Bindings = arrBindings
Set oPath = oSite.Put_
Замечание
Хэш сертификата и хранилище должны ссылаться на реальный функциональный сертификат на сервере. Если хэш сертификата и/или имя хранилища недействительны, возвращается ошибка.
Настройка параметров SSL
В следующем скрипте показано, как задать параметры SSL с помощью поставщика WMI IIS. Это значение можно найти в файле IIS_Schema.xml.
CONST SSL = 8
Set oIIS = GetObject("winmgmts:root\WebAdministration")
Set oSection = oIIS.Get(\_
"AccessSection.Path='MACHINE/WEBROOT/APPHOST',Location='Default Web Site'")
oSection.SslFlags = oSection.SslFlags OR SSL
oSection.Put\_ <a id="IISManager"></a>
Диспетчер IIS
Получение сертификата
Выберите узел сервера в представлении дерева и дважды щелкните функцию "Сертификаты сервера " в списке:
Нажмите кнопку "Создать сертификат Self-Signed... " на панели "Действия ".
Введите понятное имя нового сертификата и нажмите кнопку "ОК".
Теперь у вас есть самозаверяющий сертификат. Сертификат помечен для использования в проверке подлинности сервера; то есть его используют в качестве сертификата на стороне сервера для шифрования HTTP SSL и аутентификации идентичности сервера.
Создание привязки SSL
Выберите сайт в представлении дерева и нажмите кнопку "Привязки"... на панели "Действия ". Откроется редактор привязок, позволяющий создавать, редактировать и удалять привязки для веб-сайта. Нажмите кнопку "Добавить..." , чтобы добавить новую привязку SSL на сайт.
Параметры по умолчанию для новой привязки имеют значение HTTP через порт 80. Выберите https в раскрывающемся списке "Тип ". Выберите самозаверяющий сертификат, созданный в предыдущем разделе, в раскрывающемся списке SSL-сертификата и нажмите кнопку ОК.
Теперь у вас есть новая привязка SSL на вашем сайте, и все, что осталось, — убедиться, что она работает.
Проверка привязки SSL
В области "Действия" в разделе "Обзор веб-сайта" щелкните ссылку, связанную с только что созданной привязкой.
Internet Explorer (IE) 7 и выше отобразит страницу ошибок, так как самозаверяющий сертификат был выдан компьютером, а не доверенным центром сертификации (ЦС). IE 7 и выше будут доверять сертификату, если вы добавите его в список Доверенных корневых центров сертификации в хранилище сертификатов на локальном компьютере или в групповой политике домена.
Нажмите кнопку "Продолжить на этот веб-сайт" (не рекомендуется).
Настройка параметров SSL
Настройте параметры SSL, если вы хотите, чтобы сайт требовал SSL или взаимодействовал с сертификатами клиента определенным образом. Нажмите на узел сайта в представлении дерева, чтобы вернуться на главную страницу сайта. Дважды щелкните на параметрах SSL в центральной панели.
Сводка
В этом пошаговом руководстве мы успешно использовали средство командной строки AppCmd.exe, WMI поставщика сценариев и диспетчер IIS для настройки SSL в IIS.