我正在尝试为需要ssl +客户端证书的Web应用程序设置dev env。 所以服务器&客户端是一样的,这是我的笔记本电脑。
到目前为止我做了什么,使用网上发现的几个不同的教程:
- 创建了自签名的根CA
- 使用此根CA创建“服务器”证书,并使用此证书配置IIS ssl
- 创建了一个“客户”证书(仍然使用相同的根证书),包含所有角色
用于创建证书的命令如下所示:
makecert -n "CN=Dev Client" -iv DevCA.pvk -ic DevCA.cer -pe -ss my -sr localmachine -sv DevClient.pvk DevClient.cer
pvk2pfx -pvk DevClient.pvk -spc DevClient.cer -pfx DevClient.pfx
所以客户和&服务器证书具有相同的根证书。
然后我:
- 在当前用户和本地机器的“可信权限存储”中添加了根证书
- 在“当前用户”的“个人商店”中添加了客户端证书
- 在“本地计算机”的“个人存储”中添加了服务器证书
当我检查客户端证书属性时,它正确找到了根证书。
但现在问题是它在IIS中不起作用
如果我将客户端证书设置为“required”,我将使用HTTP 403.4 Forbidden
如果我将客户端证书设置为“已接受”,则该站点确实有效,但未收到证书
有人知道如何使其有效吗?
答案 0 :(得分:0)
你应该使用
makecert ... -sky exchange
用于服务器证书和
makecert ... -sky signature
用于客户端证书,以便服务器具有保护连接的能力,并且客户端具有对自己进行身份验证的能力。