我已经设置了一个 WebAPI 服务来要求 https 并打开以接受客户端证书。SSL 部分工作正常。我正在使用 WebRequestHandler 将证书(真实证书,而不是测试证书)附加到请求中,但是当我在 WebAPI 控制器中访问 request.GetClientCertificate 时,证书为空。
ssl 证书使用带有 clientcertnegotiation=enable 参数的“netsh http add sslcert”绑定到端口。
我正在使用 IISExpress,并通过添加<access sslFlags="Ssl, SslNegotiateCert" />
到安全节点并<clientCertificateMappingAuthentication enabled="true" />
在身份验证节点下设置来修改 applicationhost.config。
我没有收到任何错误,只是空值。
我唯一的线索是当我在浏览器中打开 WebAPI 时,系统会提示我输入 ClientCertificate,而我在代码中添加到 WebRequestHandler 的那个不在列表中。
将证书用作客户端证书有什么要求?这个问题(IISExpress ClientCertificate Setup Steps)暗示这可能是我的问题。