在开发中使用自签名客户端证书

时间:2013-10-13 16:08:11

标签: iis ssl https client-certificates

我正在尝试为需要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
如果我将客户端证书设置为“已接受”,则该站点确实有效,但未收到证书

有人知道如何使其有效吗?

1 个答案:

答案 0 :(得分:0)

你应该使用

makecert ... -sky exchange

用于服务器证书和

makecert ... -sky signature

用于客户端证书,以便服务器具有保护连接的能力,并且客户端具有对自己进行身份验证的能力。