У меня большие проблемы с настройкой схемы сертификатов X509 в C#.NET. SSL включен на сервере, и соединение выполняется через SSL. Сертификаты добавляются в хранилище запросов через request.ClientCertificates.Add()
. Однако к запросу рукопожатия не прикрепляется сертификат клиента (что я подтверждаю как проверкой кода сервера через HttpRequest.ClientCertificate
, так и анализом рукопожатия в Fiddler).
Насколько я могу судить, проблема здесь в том, что сервер не запрашивает сертификат клиента. Сертификаты точно есть в исходящем запросе, но на рукопожатии и на стороне сервера я их не вижу - они просто исчезают в эфире. Мне известна семантика выбора сертификата (благодаря этой странице), но это не решило мою проблему. ЦС должны быть одинаковыми; Я использую один и тот же самоподписанный защищенный сертификат с закрытым ключом для каждого конца теста.
Очевидно, я могу использовать certutil.exe, чтобы проверить, какие сертификаты будут выбраны при использовании с данным сертификатом сервера. Это было бы огромной помощью, если бы я мог понять, как это использовать. Certutil — большая программа с плохой документацией. Любая помощь будет оценена по достоинству.