Получение клиентских сертификатов X509 в веб-запросах

Я пытаюсь отправить сертификат X509 из обработчика Http в веб-службу, которая получит и прочитает сертификат для проверки подлинности пользователя. Я знаю, что сертификат отправляет в порядке; У меня есть тестер, который позволяет мне посмотреть на HttpWebRequest перед отправкой, а ClientCertificates свойство показывает, что к нему прикреплен сертификат. (например request.ClientCertificates.Count = 1).

Тем не менее, на другой стороне веб-службы, HttpRequest.ClientCertificate последовательно показывает NULL, Я рассмотрел несколько примеров Microsoft KB, и все они используют одну и ту же технику для вставки сертификата. Другие не связанные статьи показывают, что HttpRequest.ClientCertificate является предпочтительным способом чтения в.

Итак, что я делаю не так, и как я могу определить на сервере, что сертификат клиента был отправлен?

1 ответ

Возможно настройка вашего HttpListener с clientcertnegotiation=enable с netsh помогло бы (это заставляет сервер согласовывать клиент-сертификат во время первоначального рукопожатия, в отличие от использования повторного согласования).

Это также может зависеть от того, инициализировали ли вы сертификат на стороне клиента с помощью его закрытого ключа, см. Раздел Не удается подключиться к HTTPS с использованием сертификата клиента X509.

Другие вопросы по тегам