0

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

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

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

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

但是,当我打开我的网站时,我得到:

HTTP 错误 403.7 - 禁止

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

4

1 回答 1

1

在以下情况下,浏览器会让您选择证书:

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

     1.3.6.1.5.5.7.3.2 - id_kp_clientAuth 
    
  2. 签署您的证书的证书必须安装在服务器上受信任的根证书颁发机构(而不是客户端!)

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

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

于 2013-09-22T12:26:56.473 回答