Заставьте IIS потребовать клиентского сертификата SSL во время начального квитирования

Я пытаюсь настроить веб-сайт IIS для требования клиентских сертификатов SSL. Веб-сайт настраивается и в IIS 6 и в 7, хотя я больше интересуюсь тем, чтобы заставлять его работать на 7. Я установил потребовать клиентское свойство сертификатов в IIS, и это хорошо работает при доступе к сайту через веб-браузер, но основанный на Java клиент испытывает затруднения при доступе к нему.

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

Кто-либо имел дело с этой проблемой в IIS прежде?

19
задан nslowes 25 March 2010 в 18:27
поделиться

1 ответ

Мне потребовалось некоторое время, чтобы найти этот параметр метабазы. У нас была такая же проблема с нашим клиентом, использующим новые библиотеки certicom. После обнаружения атаки MITM на SSL Renegotiation, во многих кругах было принято решение зависать при запросах на повторное согласование.

выполнение следующей команды из \inetpub\adminscripts заставит IIS всегда запрашивать сертификат клиента.

Для IIS 6: cscript adsutil.vbs set \w3svc\siteID\SSLAlwaysNegoClientCert True

(Так для сайта по умолчанию, cscript adsutil.vbs set \w3svc\1\SSLAlwaysNegoClientCert True)

Помните, что некоторые клиенты Internet Explorer запрашивают сертификат клиента, когда получают пакет, независимо от того, нужен сертификат клиента или нет.

Для IIS 7:

Сохраните следующий текст в файл под названием "Enable_SSL_Renegotiate_Workaround.js"

var vdirObj=GetObject("IIS://localhost/W3svc/1"); 
// replace 1 on this line with the number of the web site you wish to configure 

WScript.Echo("Value of SSLAlwaysNegoClientCert Before: " + vdirObj.SSLAlwaysNegoClientCert); 
vdirObj.Put("SSLAlwaysNegoClientCert", true); 
vdirObj.SetInfo(); 
WScript.Echo("Value of SSLAlwaysNegoClientCert After: " + vdirObj.SSLAlwaysNegoClientCert);

Выполните следующую команду из командной строки администратора:

cscript.exe enable_ssl_renegotiate_workaround.js

(взято из статьи KB для 977377)

7
ответ дан 30 November 2019 в 04:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: