Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在ASP.NET应用程序中通过客户端签名的SSL证书对用户进行身份验证_Asp.net_Ssl_Client Certificates_Self Signed - Fatal编程技术网

在ASP.NET应用程序中通过客户端签名的SSL证书对用户进行身份验证

在ASP.NET应用程序中通过客户端签名的SSL证书对用户进行身份验证,asp.net,ssl,client-certificates,self-signed,Asp.net,Ssl,Client Certificates,Self Signed,我想为站点添加额外的安全性,并为我的用户生成自签名客户端证书 我将IIS设置为需要客户端证书,为服务器创建了一个自签名证书,并在下面几篇文章中介绍了如何通过makecert和pvk2pfx创建客户端证书(所有这些都使用以下方法): 我将MyPersonalCA安装在受信任的证书颁发机构中,并将JohnDoe.pfx安装在适当的证书存储中 然而,当我打开我的网站时,我得到: HTTP错误403.7-禁止 我错过了什么?为什么浏览器不发送客户端证书?在下列情况下,浏览器将允许您选择证书: 必须使用“

我想为站点添加额外的安全性,并为我的用户生成自签名客户端证书

我将IIS设置为需要客户端证书,为服务器创建了一个自签名证书,并在下面几篇文章中介绍了如何通过makecert和pvk2pfx创建客户端证书(所有这些都使用以下方法):

我将MyPersonalCA安装在受信任的证书颁发机构中,并将JohnDoe.pfx安装在适当的证书存储中

然而,当我打开我的网站时,我得到:

HTTP错误403.7-禁止


我错过了什么?为什么浏览器不发送客户端证书?

在下列情况下,浏览器将允许您选择证书:

  • 必须使用“客户端身份验证”选项生成证书

  • 签署证书的证书必须安装在服务器(而不是客户端)上的受信任根证书颁发机构中

  • 证书本身必须安装在浏览器的证书存储中(ie和chrome的系统存储,firefox的内部存储)


  • 请注意,这仍然不足以进行身份验证,您还需要自定义身份验证模块或在服务器上手动配置证书和用户之间的映射。

    找到解决方案了吗?我也有同样的问题
    makecert -r -n "CN=My Personal CA" -pe -sv MyPersonalCA.pvk -a sha1 -len 2048 -b 01/21/2010 -e 01/21/2016 -cy authority MyPersonalCA.cer
    makecert -iv MyPersonalCA.pvk -ic MyPersonalCA.cer -n "CN=John Doe" -pe -sv JohnDoe.pvk -a sha1 -len 2048 -b 01/21/2010 -e 01/21/2016 -sky exchange JohnDoe.cer -eku 1.3.6.1.5.5.7.3.2
    pvk2pfx -pvk JohnDoe.pvk -spc JohnDoe.cer -pfx JohnDoe.pfx -po PASSWORD
    
     1.3.6.1.5.5.7.3.2 - id_kp_clientAuth