0

我正在尝试为需要 ssl + 客户端证书的 Web 应用程序设置开发环境。所以服务器和客户端是一样的,它是我的笔记本电脑。

到目前为止,我使用网上找到的几个不同的教程做了什么:
- 创建了一个自签名的根 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 中不起作用。
如果我将客户端证书设置为“必需”,我有一个 HTTP 403.4 Forbidden
如果我将客户端证书设置为“接受”,该站点确实可以工作但没有收到证书

有人知道如何使它起作用吗?

4

1 回答 1

0

你应该使用

makecert ... -sky exchange

用于服务器证书和

makecert ... -sky signature

对于客户端证书,以便服务器具有安全连接的能力,并且客户端具有验证自己的能力。

于 2014-07-21T21:10:54.973 回答