浏览器不提示证书 - IIS 10.0

浏览器不提示证书 - IIS 10.0

我有一个在 IIS 8.5 中运行良好的应用程序,它在 web.config 文件中使用此设置作为路径的客户端证书登录(智能卡)。我不得不将此应用程序迁移到 IIS 10.0,一切正常,只是应用程序不提示输入证书,只是在代码中抛出一个错误,提示没有证书。

我已经仔细检查了 IIS 中的所有设置,证书和 SSL 设置都一样。该应用程序是一个简单的 .netcore 应用程序,除了证书提示之外,它运行正常。IIS 10 和 8.5 中是否存在我可能遗漏的不同之处。我认为 web.config 中允许浏览器提示证书的部分就是此处的这一部分。执行此操作的开发人员已经离职,如果您能提供任何帮助,我将不胜感激。除了已经检查的内容之外,我还需要在 IIS 中检查哪些内容?

我浏览了一些其他帖子,并确保根证书和中间证书位于证书存储区等中。应用程序本身可以使用 SSL 证书正常加载。

<location path="SmartCard">
<system.webServer>
  <security>
    <access sslFlags="Ssl,SslNegotiateCert" />
  </security>
</system.webServer>

答案1

全部事物平等的, 它应该工作一样!

但这是关键部分——也许并非所有事物在水平之上都是平等的web.config(或之下)是平等的 - web.config 将仅适用于属于同一 HTTP URL 路径的 SmartCard 文件夹,基于此地点标签)

Windows\System32\InetSrv\config\ApplicationHost.config趋于累积事物随着时间的推移,人们会忘记所做的服务器级配置更改。

因此,可能的选择:

  • 检查是否存在服务器证书使用私钥安装并且站点绑定包含 HTTPS

    • 我知道你提到过通过 SSL 使用网站是可行的——这应该可以证明
  • 从工作服务器转储出网站的有效设置,并与非工作服务器的转储设置进行比较

    • 为了加分,像 Web Deployment Tool 这样的工具可能会有所帮助
    • 手动方法:
      • APPCMD LIST CONFIG http://site/pathabovesmartcard/ /text:* >working.txt(在工作服务器上)
      • APPCMD LIST CONFIG http://site/pathabovesmartcard/ /text:* >NONworking.txt(在...您猜对了,在不工作的服务器上!)
      • 进而比较用文本编辑器或明智的眼光
      • 如果您更喜欢 XML,请忽略 /text:*
  • 添加上述NETSH SHOW SERVICESTATE比较,以便快速查看 HTTP.SYS 队列

这实际上是删节版 - 您还可以applicationhost.config在 中查看未按站点过滤的完整内容(最初是合理组织的,然后是线性组织的,随后发生变化)Windows\System32\InetSrv\Config,并且可能变得更容易(或者更难)。

相关内容