Internet explorer Internet Explorer不提示输入客户端证书
我在IIS7.5中部署了一个ASP.NETWebAPI REST服务。我正在测试如何将客户端证书身份验证过程添加到此服务,以便只有特定的客户端才能访问该服务 当前情况:Internet explorer Internet Explorer不提示输入客户端证书,internet-explorer,iis,ssl,Internet Explorer,Iis,Ssl,我在IIS7.5中部署了一个ASP.NETWebAPI REST服务。我正在测试如何将客户端证书身份验证过程添加到此服务,以便只有特定的客户端才能访问该服务 当前情况: 我创建了根证书、服务器证书和客户端 使用xca的证书。服务器证书和客户端证书 使用创建的根证书进行签名 我使用mmc将创建的根证书导入到本地 服务器和服务器上的计算机\受信任的根证书颁发机构 客户 我使用mmc将创建的服务器证书导入到本地 服务器上的计算机\个人 我使用mmc将创建的客户端证书导入到当前 客户端上的用户\个人
- 我创建了根证书、服务器证书和客户端 使用xca的证书。服务器证书和客户端证书 使用创建的根证书进行签名
- 我使用mmc将创建的根证书导入到本地 服务器和服务器上的计算机\受信任的根证书颁发机构 客户
- 我使用mmc将创建的服务器证书导入到本地 服务器上的计算机\个人
- 我使用mmc将创建的客户端证书导入到当前 客户端上的用户\个人
- 在IIS中,我创建了指向创建的服务器的HTTPS绑定 证明书我还配置了“需要SSL”和“需要客户端” 有关服务的“证书”
- 我将REST服务配置为在响应中包含CORS头。 这是为了支持跨域资源的请求
- 我在Internet Explorer中检查了证书-创建的根目录 证书显示在受信任的根证书颁发机构和 创建的客户端证书显示在“个人”下
- 我检查了客户端证书的认证路径-根证书和 证书和客户端证书显示ok
- 我知道Internet Explorer默认情况下不会提示 客户端证书(如果只有一个可用)。我添加了我的服务器 到受信任的站点,然后设置自定义级别-不提示输入客户端 仅存在一个客户端证书时的证书选择 残废再次测试-仍然没有提示选择 证书
- 使用wireshark在初始握手期间捕获流量- 我可以看到服务器向客户端发送了“证书请求”。 此外,我在列表中看到了我创建的根证书 接受的根证书。拿到证书之后 请求时,客户端发送ACK,然后发送FIN,ACK。服务器以 RST、ACK和通信结束
- 将Internet Explorer 10升级到Internet Explorer 11-无差异
- 我发现了一个stackoverflow问题,这个问题与我之前提到的问题非常相似 拥有: 但在这种情况下,Chrome似乎也不起作用。为了我的 case Chrome和Fiddler可以工作,只有Internet Explorer不能。这是 最让我困惑的是什么
大卫我想我可以帮你解决这个问题 我在我的webapiconfig.cs中添加了这个
var cors = new EnableCorsAttribute("*", "*", "*") { SupportsCredentials = true };
在我的Web.Config中,我添加了
<authentication mode="Windows"/>
<authorization>
<allow users="?"/>
</authorization>
这适用于IE11和IE10 您是否将
数字签名
包含在密钥使用扩展中,并将客户端身份验证
包含在增强密钥使用扩展中。我认为IE使用后者来确定它是否可以在对话框中显示。
{
method: "GET",
headers: myHeaders,
credentials: "include"
};