Требовать только определенные клиентские сертификаты в IIS

1093
Jeremy

Я внедряю решение, которое требует клиентских сертификатов. Я использую службы IIS 7.5 и ASP.Net 4 WCF.

Я установил для параметров SSL «Требовать SSL» и «Требовать клиентские сертификаты». Хорошо выглядит до сих пор. Поскольку я новичок в использовании клиентских сертификатов, я провел небольшое исследование и натолкнулся на статью поддержки Microsoft, в которой пытается немного рассказать о процессе проверки клиентских сертификатов. Говорится:

Когда сервер запрашивает сертификат, запрос включает список центров сертификации, которым сервер доверяет. Затем клиент сравнивает этот список со списком центров сертификации, которым доверяет клиент, и создает список совпадающих. Затем клиент сравнивает этот список с имеющимися у него клиентскими сертификатами и определяет, какие сертификаты, если таковые имеются, были выпущены центрами сертификации, которым доверяют и клиент, и сервер.

Очевидно клиент отправит сертификаты, которым доверяют обе стороны. Меня интересует, могу ли я настроить IIS или мою службу WCF так, чтобы они принимали только определенные клиентские сертификаты, например, те, которые мы генерируем из нашего собственного центра сертификации специально для этой службы WCF.

Что мешает кому-либо использовать клиентский сертификат VeriSign или использовать наш центр сертификации, предназначенный для каких-то других целей?

2
Клиент не отправляет сертификат. Он принимает один из сертификатов, предлагаемых сервером, после проверки на соответствие локальным сертификатам. Brian 10 лет назад 0
@ Брайан - я не понимаю. мы говорим о клиентских сертификатах. Серверная сторона требует, чтобы клиент подтвердил свою личность, предоставив серверу сертификат клиента, не так ли? Как клиент не отправляет сертификат? Jeremy 10 лет назад 2
@ Джереми, ты когда-нибудь находил решение этой проблемы? ahsteele 7 лет назад 0
@ahsteele Я не имею. В нашей среде мы используем механизм обратного прокси (F5 - поставщик), поэтому мы применяем там сертификат клиента. Мы можем написать скрипт, который гарантирует, что клиентский сертификат был выпущен нами. Это не позволяет нам проверить, является ли сертификат тем конкретным пользователем. Если вы решите, как это сделать в IIS, я бы тоже хотел узнать ... :) Jeremy 7 лет назад 0
@ Джереми надеялся, что у тебя серебряная пуля. Я предполагаю, что в вашем сценарии пользователю также предоставляется список сертификатов от всех CA, которым доверяют и сервер, и клиент. ahsteele 7 лет назад 0
@ahsteele - в нашем случае запрос выполняется не программным обеспечением, а программным обеспечением, поэтому оно настроено для определенного сертификата. Таким образом, пользователю не нужно выбирать сертификат и получать такой выбор. Jeremy 7 лет назад 0
@ahsteele - в сервисе wcf вы можете написать собственный валидатор сертификата. См. Https://msdn.microsoft.com/en-us/library/ms733806(v=vs.110).aspx и https://msdn.microsoft.com/en-us/library/aa354512(v=vs. 110) .aspx Jeremy 7 лет назад 0

0 ответов на вопрос

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