Я занимаюсь разработкой приложения mvc dotnetcore 2.0, для которого требуется включить клиентский сертификат.
Я создал Root CA Trusted Certificate И сертификат отзыва, которые устанавливаются в Trusted Root Certification Authorities в LocalMachine.
makecert -n "CN = RootCaTest" -r -sv RootCaTest.pvk RootCaTest.cer makecert -crl -n "CN = RootCaTest" -r -sv RootCaTest.pvk RootCaTest.crl
Iзатем использовал этот сертификат RootCaTest для создания сертификата клиента: makecert -sk user -iv RootCaTest.pvk -n "CN = usercert" -ic RootCaTest.cer -sr currentuser -ss my -sky signature -pe
В IIS-Express applicationHost.config я установил (как и в других статьях)
<system.webServer>
<security>
<access sslFlags="Ssl, SslNegotiateCert" />
....
</security>
<authentication>
<iisClientCertificateMappingAuthentication enabled="true"></iisClientCertificateMappingAuthentication>
....
</authentication>
</system.webServer>
Когда я пытаюсь отладить приложение, я получаю сообщение об ошибке «Невозможно запустить dotnet.exe. Сервер вернул403 ошибка "- и что полный ответ был записан в HttpFailure_xx.html.файл HttpFailure показывает, что «Ваш клиентский сертификат либо не является доверенным, либо недействительным».
Ошибка происходит ДО того, как веб-браузер открыт для отладки - Visual Studio 2017 показывает системное сообщение с ошибкой.
Я следовал инструкциям на этой странице, что приводит к проверке того, что «В хранилище сертификатов доверенных корневых центров сертификации есть один или несколько неподписанных сертификатов. Несамоподписанный сертификат - это любой сертификат длязначения "Issued To" и "Issued By" не совпадают.- нет ни одного после проверки.
Без вышеуказанных изменений в конфигурации iis-express Context.Connection.ClientCertificate всегда равен нулю.
Последние два дня я читал пост за постом оэто, но я не могу найти решение, которое работает в моем случае.
Обратите внимание, что я проверил, что ClientCertificate правильно отправляется через HttpClient.