получение клиентских сертификатов X509 в веб-запросах - PullRequest
2 голосов
/ 10 августа 2010

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

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

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

1 Ответ

1 голос
/ 10 августа 2010

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

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

...