Можно ли настроить параметры сертификата клиента в файле web.config - PullRequest
18 голосов
/ 04 января 2012

Я работаю с приложением SSL и хочу контролировать, какие папки игнорируют, требуют или принимают клиентские сертификаты.

Конечная цель заключается в том, чтобы подпапка webApp игнорировала сертификацию клиента.Я не хочу делать это через IIS, потому что он должен быть реплицирован по всей веб-ферме.

Есть идеи?

1 Ответ

28 голосов
/ 04 января 2012

Вы можете использовать комбинацию access section и locations в web.config (или web.configs в соответствующих подкаталогах) для настройки этого.

Например, чтобыдля получения сертификата SSL в интерфейсе каталога, вы можете добавить следующий блок в раздел конфигурации вашего web.config:

  <location path="Interface">
    <system.webServer>
      <security>
        <access sslFlags="Ssl,SslRequireCert" />
      </security>
    </system.webServer>
  </location>

ПРИМЕЧАНИЕ: как сказал @Jonathan DeMarks в своем комментарии, я такженеобходимо включить SslNegotiateCert, чтобы заставить его работать (с IIS 8.5 и Chrome).Итак, рабочая конфигурация для меня: sslFlags="Ssl,SslRequireCert,SslNegotiateCert" На самом деле я получил сообщение об ошибке, указав, что я указал SslRequireCert, но я мог бы использовать SslNegotiateCert.

Обратите внимание, что если вы хотитетребуется Ssl, вы должны добавить его и соответствующий флаг сертификата.

Значения флага из документации technet:

Нет.Этот параметр по умолчанию отключает SSL для сайта или приложения.

Ssl.Сайт или приложение требует SSL.

SslNegotiateCert.Сайт или приложение принимает клиентские сертификаты для аутентификации.

SslRequireCert.Сайт или приложение требует клиентских сертификатов для аутентификации.Ssl128.Для сайта или приложения требуется 128-битное шифрование SSL-сертификата.

ОДНАКО

Секция access не может быть переопределена по умолчанию.

Для поддержки этого необходимо изменить applicationHost.config в C: \ Windows \ System32 \ inetsrv \ config (или в соответствующем каталоге для вашей установки) и изменить следующую строку:

<section name="access" overrideModeDefault="Deny" />

до:

<section name="access" overrideModeDefault="Allow" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...