Назад | Перейти на главную страницу

IIS, CertCheckMode и наследование метабазы

Один из моих клиентов хочет избежать проверки списка отозванных сертификатов на одном из его веб-сайтов. Насколько мне известно, мы должны установить это значение (CertCheckMode) на 1 в метабазе IIS:

http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/0c08d268-1634-4486-8382-b735e295b3aa.mspx?mfr=true

Проблема в том, что эта конфигурация не работает. Я использую IIS Metabase Explorer, чтобы увидеть эту конфигурацию. Он выглядит нормально в папке W3SVC веб-сайта и унаследован в ROOT IIsVirtualDirectory и другом виртуальном каталоге (назовем его APP), где на самом деле находится приложение.

Приложение изолировано в выделенный пул. Если значение отображается в виртуальном каталоге, почему IIS все еще пытается получить CRL?

Большое спасибо, виртуальное пиво ждет решателей;)

хотя это старый пост, возможно, кто-то столкнется с этим.

Я действительно столкнулся с подобной ситуацией. Спустя много времени убили:

1) Параметр конфигурации CertCheckMode кажется применимым только для проверки сертификата клиента.

2) .NET будет проверять строго подписанные сборки и генерировать свидетельства издателя - если эта функция включена (по умолчанию), каждый раз при перезапуске пула приложений будут проверяться списки отзыва сертификатов. Если есть брандмауэр, который блокирует исходящий порт 80, приложение просто зависнет, пока не истечет время ожидания всех сайтов CRL (~ 3-5 мин).

Решение: а) Включить исходящий порт 80 б) Отключить создание свидетельств издателя:

Для этого:

В machine.config (!) Это не будет работать в (app | web) .config

<configuration>
<runtime>    
     <generatePublisherEvidence> Element
        <generatePublisherEvidence  enabled="false"/>

В моем случае у меня был пустой <runtime/> тег в строке 127 файла machine.config

Вы можете попробовать запустить команду cscript adsutil.vbs SET w3svc/n/CertCheckMode 1 где n - идентификатор веб-сайта. Сообщите мне, если это поможет.