Я настроил службу WebAPI так, чтобы она требовала https и открывалась для принятия клиентского сертификата. Часть SSL работает нормально. Я использую WebRequestHandler для прикрепления сертификата (настоящего, а не тестового) к запросу, но когда я обращаюсь к request.GetClientCertificate в контроллере WebAPI, сертификат имеет значение null.
Сертификат ssl привязан к порту с помощью «netsh http add sslcert» с параметром clientcertnegotiation=enable.
Я использую IISExpress и изменил applicationhost.config, добавив <access sslFlags="Ssl, SslNegotiateCert" />
к узлу безопасности и установив <clientCertificateMappingAuthentication enabled="true" />
под узлом аутентификации.
Я не получаю никаких ошибок, просто ноль.
Моя единственная подсказка заключается в том, что когда я вызываю WebAPI в браузере, мне предлагается ввести ClientCertificate, а тот, который я добавляю в WebRequestHandler в коде, отсутствует в списке.
Каковы требования к сертификату, который будет использоваться в качестве сертификата клиента? Этот вопрос (шаги установки IISExpress ClientCertificate) подразумевает, что это может быть моя проблема.