Использование certutil для проверки ответов на сертификаты

У меня большие проблемы с настройкой схемы сертификатов X509 в C#.NET. SSL включен на сервере, и соединение выполняется через SSL. Сертификаты добавляются в хранилище запросов через request.ClientCertificates.Add(). Однако к запросу рукопожатия не прикрепляется сертификат клиента (что я подтверждаю как проверкой кода сервера через HttpRequest.ClientCertificate, так и анализом рукопожатия в Fiddler).

Насколько я могу судить, проблема здесь в том, что сервер не запрашивает сертификат клиента. Сертификаты точно есть в исходящем запросе, но на рукопожатии и на стороне сервера я их не вижу - они просто исчезают в эфире. Мне известна семантика выбора сертификата (благодаря этой странице), но это не решило мою проблему. ЦС должны быть одинаковыми; Я использую один и тот же самоподписанный защищенный сертификат с закрытым ключом для каждого конца теста.

Очевидно, я могу использовать certutil.exe, чтобы проверить, какие сертификаты будут выбраны при использовании с данным сертификатом сервера. Это было бы огромной помощью, если бы я мог понять, как это использовать. Certutil — большая программа с плохой документацией. Любая помощь будет оценена по достоинству.


person YYY    schedule 12.08.2010    source источник


Ответы (1)


Если вы используете сервер IIS, вы ДОЛЖНЫ предоставить сертификат, которому доверяет ваш сервер. Таким образом, вы ДОЛЖНЫ добавить сертификат ЦС клиентского сертификата в хранилище «Корневых центров сертификации» серверного компьютера. IIS не работает с самозаверяющими сертификатами. Он запрашивает сертификат клиента, предоставляющий список центров сертификации, которым он доверяет.

person sinm    schedule 12.11.2010