自签名SSL证书403.7错误

时间:2012-11-26 20:18:39

标签: ssl windows-7 iis-7.5 pki

我这个问题持续了大约2个星期。我做了很多研究,尝试了不同的方法,但没有快乐。我的计算机(Windows 7 Pro)上有一个开发网站,使用sql server 2008 r2并使用IIS 7.5。有一个实际的开发服务器运行数据库和Web服务器,但由于我的位置,我无法使用主开发站点。我发布了自签名的受信任的根证书:

makecert -r -pe -n "CN=ROOT AUTHORITY" -ss my -sr CurrentUser -a sha1 -sky signature -cy authority -sv ca.pvk ca.cer

然后我将其安装到本地计算机上的受信任根目录中。之后我创建了一个供IIS使用的证书。

makecert -pe -n "CN=example.website.name.com" -a sha1 -sky exchange -eku 1.3.6.1.5.5.7.3.1 -ic ca.cer -iv ca.pvk -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12 -sv server.pvk server.cer

然后我为IIS

创建 .pfx 文件
pvk2pfx -pvk server.pvk -spc server.cer -pfx server.pfx

我完成上述操作后。我将证书导入IIS,然后将网站绑定到SSL证书(server.pfx)

完成所有这些后,我访问网站https://example.website.name.com,我禁止403.7。

有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

看看其中的一些陷阱......

服务器问题#1 - 传入的客户端证书有一个或多个服务器上不存在的证书路径。打开证书转到证书路径(选项卡)并确保每个根权限都在SERVERS受信任的根证书颁发机构中。请注意,您不需要在服务器上仅安装证书(本地计算机)\受信任的根证书颁发机构下的根权限公钥的证书。

服务器问题#2(前面提到的解决方案) - 在IIS中,对于站点,确保将SSL设置设置为Accept或Require(从不忽略)。使用Require的好处是IIS日志会显示403 7错误,其中Accept只会获得IsPresent == false但有200个http代码。

客户问题#1 - 与服务器问题#1相同,必须信任这些权限!

客户问题#2 - 您拥有受信任的root权威,但不是证书本身的私钥。确保将pfx(私钥)安装到证书库而不是公钥(.cer)。您还可以通过双击证书库中的证书来查看您是否拥有私钥,并且在常规选项卡上,您应该看到一条消息说明了这一点。

客户问题#3 - 您将证书放在错误的位置。可能最好将您的证书放在证书(本地计算机)\个人\证书中,而不是(当前用户)。这将使证书可用于处理运行代码并且实际需要访问它的帐户。

客户问题#4 - 右键单击​​证书(在商店中而不是.cer文件) - >所有任务 - >管理私钥...并确保运行代码的进程帐户具有“读取”权限。对此进行快速测试(但不建议用于生产用途)是将“Everyone”添加为读取以查看这是否是您的问题