Доступ к безопасности <доступа>

Общие сведения

Элемент <access> позволяет настроить, используют ли веб-сайт или приложение сертификаты клиента для проверки подлинности, и определить криптографическую надежность, необходимую для шифрования этих сертификатов.

Элемент <access> содержит атрибут sslFlags , которому можно задать одно из следующих значений:

  • Нет. Этот параметр по умолчанию отключает SSL для сайта или приложения.
  • Ssl. Сайту или приложению требуется ПРОТОКОЛ SSL.
  • SslNegotiateCert. Сайт или приложение принимает сертификаты клиента для проверки подлинности.
  • SslRequireCert. Сайту или приложению требуются сертификаты клиента для проверки подлинности.
  • Ssl128. Сайту или приложению требуется 128-разрядное шифрование SSL-сертификата.

Элемент доступа можно использовать для настройки сайта, приложения или виртуального каталога для требования сертификатов клиента. Для этого задайте привязку HTTPS для сайта или приложения, а затем запросите и получите сертификаты из центра сертификации (ЦС). Это могут быть сертификаты internet server, сертификаты сервера домена или самозаверяющий сертификат сервера. Для сертификатов Internet Server требуется, чтобы ЦС выдаст серверу или серверам сертификат после запроса. Сертификат сервера домена выдается компьютером ЦС, работающим в домене вашей компании, и может помочь управлять доступом к внутренним ресурсам только сотрудникам, которые установили сертификат. Самозаверяющий сертификат можно использовать для устранения проблем со сторонними сертификатами, удаленного управления службами IIS 7, создания безопасного частного канала между сервером и выбранной группой пользователей или тестирования функций приложений, использующих SSL.

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

Версия Примечания
IIS 10.0 Элемент <access> не был изменен в IIS 10.0.
IIS 8,5 Элемент <access> не был изменен в IIS 8.5.
IIS 8,0 Элемент <access> не был изменен в IIS 8.0.
IIS 7,5 Элемент <access> не был изменен в IIS 7.5.
IIS 7.0 Элемент <access> появился в IIS 7.0.
IIS 6,0 Элемент <access> заменяет свойства метабазы IIS 6.0 SSLAlwaysNegoClientCert и AccessSSLFlags .

Настройка

Элемент <access> включен в установку iis 7 по умолчанию.

Инструкции

Как требовать уровень безопасных сокетов

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

    • Если вы используете Windows Server 2012 или Windows Server 2012 R2:

      • На панели задач щелкните диспетчер сервера, выберите Сервис, а затем диспетчер служб IIS.
    • Если вы используете Windows 8 или Windows 8.1:

      • Удерживая нажатой клавишу Windows, нажмите букву X и щелкните панель управления.
      • Щелкните Администрирование, а затем дважды щелкните Диспетчер служб IIS.
    • Если вы используете Windows Server 2008 или Windows Server 2008 R2:

      • На панели задач нажмите кнопку Пуск, наведите указатель на пункт Администрирование, а затем выберите Пункт Диспетчер служб IIS.
    • Если вы используете Windows Vista или Windows 7:

      • На панели задач нажмите кнопку Пуск, а затем панель управления.
      • Дважды щелкните Администрирование, а затем дважды щелкните Диспетчер служб IIS.
  2. В области Подключения перейдите к сайту, приложению или каталогу, для которого требуется настроить требования к SSL. Вы не можете настроить SSL на уровне сервера.

  3. На панели Главная дважды щелкните Параметры SSL.
    Снимок экрана: панель

  4. В области Параметры SSL щелкните Требовать SSL.

  5. В области Действия нажмите кнопку Применить.

Конфигурация

Элемент можно настроить <access> на уровне сервера в файле ApplicationHost.config либо на уровне сайта, приложения или каталога в соответствующем Web.config файле.

Атрибуты

Атрибут Описание
sslFlags Атрибут sslFlags может быть одним из следующих возможных значений. Значение по умолчанию — None.
Значение Описание
None Отключите SSL.
Ssl Требовать SSL.
SslNegotiateCert Примите сертификаты клиента для проверки подлинности.
SslRequireCert Требовать сертификаты клиентов для проверки подлинности.
SslMapCert Включите проверку подлинности на основе сопоставления сертификатов.
Ssl128 Требуется 128-разрядный ПРОТОКОЛ SSL.

Дочерние элементы

Отсутствует.

Образец конфигурации

В следующем примере конфигурации, включенном в файл ApplicationHost.config, требуется SSL-подключение между веб-сайтом Contoso и всеми клиентскими браузерами.

<location path="Contoso">
   <system.webServer>
      <security>
         <access sslFlags="ssl">
      </security>
   </system.webServer>
</location>

Пример кода

В следующих примерах протокол SSL требуется для доступа к веб-сайту Contoso.

AppCmd.exe

appcmd.exe set config "Contoso" -section:system.webServer/security/access /sslFlags:"Ssl" /commit:apphost

Примечание

При использовании AppCmd.exe для настройки этих параметров для параметра apphostфиксации необходимо задать значение . Это зафиксирует параметры конфигурации в соответствующем разделе расположения в файле ApplicationHost.config.

C#

using System;
using System.Text;
using Microsoft.Web.Administration;

internal static class Sample {
   private static void Main() {
      using(ServerManager serverManager = new ServerManager()) { 
         Configuration config = serverManager.GetApplicationHostConfiguration();
         ConfigurationSection accessSection = config.GetSection("system.webServer/security/access", "Contoso");
         accessSection["sslFlags"] = @"Ssl";
         serverManager.CommitChanges();
      }
   }
}

VB.NET

Imports System
Imports System.Text
Imports Microsoft.Web.Administration

Module Sample
   Sub Main()
      Dim serverManager As ServerManager = New ServerManager
      Dim config As Configuration = serverManager.GetApplicationHostConfiguration
      Dim accessSection As ConfigurationSection = config.GetSection("system.webServer/security/access", "Contoso")
      accessSection("sslFlags") = "Ssl"
      serverManager.CommitChanges()
   End Sub
End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";

var accessSection = adminManager.GetAdminSection("system.webServer/security/access", "MACHINE/WEBROOT/APPHOST/Contoso");
accessSection.Properties.Item("sslFlags").Value = "Ssl";

adminManager.CommitChanges();

VBScript

Set adminManager = CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"

Set accessSection = adminManager.GetAdminSection("system.webServer/security/access", "MACHINE/WEBROOT/APPHOST/Contoso")
accessSection.Properties.Item("sslFlags").Value = "Ssl"

adminManager.CommitChanges()