首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iis express客户端证书无效证书

iis express客户端证书无效证书
EN

Stack Overflow用户
提问于 2018-05-31 22:42:05
回答 1查看 1.1K关注 0票数 1

我正在开发一个dotnetcore2.0MVC应用程序,它需要包含一个客户端证书。

我创建了根CA信任证书和吊销证书,它们安装在LocalMachine的信任根证书颁发机构中。

makecert -n "CN=RootCaTest“-r -sv RootCaTest.pvk RootCaTest.cer makecert -crl -n "CN=RootCaTest”-r -sv RootCaTest.pvk RootCaTest.crl

然后,我使用该RootCaTest证书创建了一个客户端证书: makecert -sk user -iv RootCaTest.pvk -n "CN=usercert“-ic RootCaTest.cer -sr currentuser -ss my -sky signature -pe

在IIS-Express applicationHost.config中,我已经设置了(根据其他文章)

代码语言:javascript
复制
<system.webServer>
  <security>
    <access sslFlags="Ssl, SslNegotiateCert" />
    ....
  </security>
  <authentication>
    <iisClientCertificateMappingAuthentication enabled="true"></iisClientCertificateMappingAuthentication>
    ....
  </authentication>
</system.webServer>

当我尝试调试应用程序时,我得到一个错误"Unable to start dotnet.exe。the server returned 403error“-并且完整的响应已写入HttpFailure_xx.html。HttpFailure文件显示“您的客户端证书不受信任或无效”。

错误发生在打开web浏览器进行调试之前- Visual Studio 2017显示了一条带有错误的系统消息。

我已经按照该页面上的说明进行了验证:“在受信任的根证书颁发机构证书库中有一个或多个非自签名证书。非自签名证书是指”颁发给“和”颁发人“值不完全匹配的任何证书。-检查后没有。

如果不对iis-express配置进行上述更改,则Context.Connection.ClientCertificate始终为空。

在过去的两天里,我读了一篇又一篇关于这方面的文章,但我找不到任何适合我的解决方案。

请注意,我已经检查了是否通过HttpClient正确发送了ClientCertificate。

EN

回答 1

Stack Overflow用户

发布于 2018-06-01 13:15:50

我的结论是,问题出在调试的配置方式上。Kestrel ListenOptions针对HTTPS进行了配置,并包含指定的服务器证书并要求使用客户端证书进行身份验证。

如果我更改应用程序的Debug属性并将“Launch:”IIS-Express切换到Project,现在调试将在控制台窗口(而不是浏览器)中打开Kestrel-server。

现在,如果我调用Kestrel-Urls,Client-Certificate不再为空,并且我能够验证请求等。

在IIS-Express中调试时,我看到服务器证书(在浏览器中)是'localhost',而不是我在Kestrel Listen-Options中指定的证书。

我想知道的是:是否有可能以某种方式将IIS-Express配置为使用与为Kestrel设置的相同的服务器证书?或者,在本地调试此应用程序以启动项目是唯一的方法吗?

谢谢

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50626961

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档