首页 文章

SSL认证链不适用于自签名证书

提问于
浏览
0

客户给了我们3个证书,它们按顺序安装在Windows服务器上,并且:

  • 由Verisign发布,适用于Symantec(仅限证书,作为中间件安装)

  • Symantec发布,适用于CompanyX(仅限证书,安装为中间)

  • CompanyX发布,适用于CompanyX(证书和密钥,安装为个人)

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

Verisign(root) - > Verisign(中间) - > Symantec(中级)

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

似乎Windows无法在最后一个中间证书和自签名证书之间 Build 链,因此当客户端连接到Web服务器时,他们会看到自签名或不受信任的证书警告,可能是因为服务器未发布中间证书 .

我已经验证了常用名称的完全匹配,并重复了几次安装程序 . 我在安装证书时做错了吗?我错过了什么吗?

2 回答

  • 0

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

    您的客户需要做的是转到生成原始请求的计算机(我怀疑在IIS服务器上)并尝试通过运行以下命令正确安装颁发的证书:

    certreq -accept path\certNo2.cer
    

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

  • 0

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

    由于#3和#2都具有相同的主题(和公钥),并且我拥有#3但不是#2的私钥,我想在#2证书上尝试#3私钥,因此:

    • 使用 openssl pkcs12 -in Cert3.pfx -nocerts -nodes 从#3中提取密钥 . Cert3.pfx是带密钥的#3证书,它创建一个只有私钥的新Cert3.key文件 .

    • 使用 openssl pkcs12 -export -out 'NewCert2.pfx' -inkey Cert3.key -in Cert2.cer 将提取的密钥合并为#2证书 . Cert2.cer在没有密钥的情况下是#2,并且在#2 cert和#3密钥合并的情况下创建NewCert2.pfx .

    • 从个人商店删除#3,从中级商店删除#2 .

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

    • 更新了新证书的IIS绑定 .

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

相关问题