2016-04-14 155 views
0

一位顾客给了我们3级证书,这是在顺序安装在Windows服务器上:SSL链签名证书

  1. Verisign发布,赛门铁克(证书只,安装为 中间体)
  2. 由Symantec分,公司CompanyX(证书只, 安装为中间)
  3. 由公司CompanyX分,公司CompanyX (证书和密钥,安装为个人)

在MMC中,当我检查#2,我可以看到链为:

Verisign所(根) - >威瑞(中间体) - >赛门铁克(中间体)

检查当# 3(自签名证书),没有链。只有CompanyX。

看起来像windows无法建立最后一个中间和自签名证书之间的链,因此当客户端连接到Web服务器时,他们看到自签名或不可信证书警告,可能是因为服务器未发布中间证书。

我已经验证了通用名称完全匹配,并重复安装过程几次。我安装证书有什么问题吗?我错过了什么吗?

回答

0

只是为了记录和未来可能的搜索结果,这里是我如何解决它:

由于两个#3,#2具有相同的主题(和公钥),我不得不为#3的私钥,但不#2,我想尝试在#2证书#3私钥,那么:

  1. 从提取#3的键与openssl pkcs12 -in Cert3.pfx -nocerts -nodes。 Cert3.pfx是带密钥的#3证书,并且只使用私钥创建新的Cert3.key文件。

  2. 合并#2证书和提取的密钥openssl pkcs12 -export -out 'NewCert2.pfx' -inkey Cert3.key -in Cert2.cer。其中Cert2.cer是#2没有密钥,并创建NewCert2.pfx与#2证书和#3密钥合并。

  3. 从个人商店中删除#3并从中间商店删除#2。

  4. 将新的合并#2导入个人商店。

  5. 更新了新证书的IIS绑定。

结果是使用#2作为SSL证书,已经使用SSL-Checker进行了测试,并且一切正常。

0

证书#3不是VeriSign颁发的证书的一部分。它可以是从节点(在证书MMC中)复制的不完整请求的虚拟证书。如果是这种情况(比较公钥或Subject Key Identifier扩展值),#2和#3证书。如果它们匹配,则将证书#3移动到Certificate Enrollment Requests节点。

你的客户需要做的是去哪里产生原始请求的机器(我会怀疑IIS服务器上),并试图通过运行以下命令正确安装颁发的证书:

certreq -accept path\certNo2.cer 

如果命令成功,证书将自动安装在个人存储中。如果命令失败,客户必须找到生成请求的机器并运行上面的命令。

+0

谢谢@CryptoGuy。我可以确认#2和#3的公钥值是相同的,但mmc中没有'Certificate Enrollment Requests'节点。我相信最初的请求是在Java密钥库中完成的,我不得不使用keytool将其转换为pfx。 – JavoSN