2009-09-02 5 views
1

Мне нужно, чтобы клиентские сертификаты на сайте в IIS запрашивались для любого запроса, который не исходит из локальной сети. Любые локальные запросы не должны запрашивать сертификаты клиентов. Есть ли способ сделать это в IIS? Я думал о настройке IIS, чтобы разрешить сертификаты клиентов, но не требовать их, а затем использовать пользовательский HttpModule, который будет проверять исходный IP-адрес и отбрасывать что-либо не из локальной сети, которая не включает сертификат клиента.Требовать клиентские сертификаты в IIS для нелокальных сетевых запросов с использованием HttpModule

Будет ли это работать? Как бы вы решили проблему?

ответ

0

Есть несколько способов, которыми я бы это рассмотрел. Вы можете выбрать, что угодно:

  1. дублировать сайт. Нужно требовать клиентского SSL, а другого нет. Второй должен отключить внешний доступ.

  2. установить клиент ssl для локальных машин. Это, пожалуй, самый простой, если у вас нет каких-либо проблем с инфраструктурой, получающих сертификаты клиентов.

  3. Когда IIS требует клиентского SSL, он отвечает на все HTTP-запросы сообщением типа «запрос клиента ssl». Клиент (например, браузер) затем обновляет свой запрос (например, показывает диалоговое окно IE для сертификата), передавая необходимые сертификаты. Вы можете использовать HttpModule для захвата этих сообщений для локальных запросов.