我已使用 SHA1 哈希算法安装了新的 SSL 证书。我使用的是 GeoTrust SSL CA - G2 颁发的安全证书,但在进行 WebServices 通信时,我遇到了 PKIX 错误。
以下页面:
https://www.geocerts.com/ssl_checker
它给我发送了下一条消息:
证书链完整?无法找到有效的根 CA 证书,证书可能会显示浏览器警告。
我希望有一个人可以帮助我。
答案1
这是因为你的 Web 服务器中没有用于 SSL 的 Chain 文件
要创建链文件,您必须 cat 每个 .crt 文件并将其重定向以创建一个新的 -bundle.crt
下面是示例,我从证书颁发机构获得了 3 个文件
sysadmin@localhost:~/Desktop/certificates$
sysadmin@localhost:~/Desktop/certificates$ ls -l
total 12
-rw-r--r-- 1 sysadmin sysadmin 1521 May 30 2000 AddTrustExternalCARoot.crt
-rw-r--r-- 1 sysadmin sysadmin 1757 Feb 16 2012 PositiveSSLCA2.crt
-rw-r--r-- 1 sysadmin sysadmin 1793 Jan 18 2014 STAR_nydomain_com.crt
cat 文件并将其直接放入一个名为 -bunle 的新文件中
sysadmin@localhost:~/Desktop/certificates$ cat AddTrustExternalCARoot.crt PositiveSSLCA2.crt STAR_nydomain_com.crt > STAR_nydomain_com-bundle.crt
在这里您可以看到上述命令的输出,有一个新的文件 STAR_nydomain_com-bundle.crt
sysadmin@localhost:~/Desktop/certificates$ ls -l
total 20
-rw-r--r-- 1 sysadmin sysadmin 1521 May 30 2000 AddTrustExternalCARoot.crt
-rw-r--r-- 1 sysadmin sysadmin 1757 Feb 16 2012 PositiveSSLCA2.crt
-rw-rw-r-- 1 sysadmin sysadmin 5071 Jul 31 12:09 STAR_nydomain_com-bundle.crt
-rw-r--r-- 1 sysadmin sysadmin 1793 Jan 18 2014 STAR_nydomain_com.crt
按照如下方式更改 apache confi 或 nginx confi 中的 SSL 条目
SSLCertificateFile /etc/apache2/ssl/STAR_nydomain_com.crt
SSLCertificateKeyFile /etc/apache2/ssl/certificate.key
SSLCertificateChainFile /etc/apache2/ssl/STAR_nydomain_com-bundle.crt
重新启动 Web 服务器(Apache 或 nginx)
这将修复您的链文件问题。
如果运行良好,结果就是如此,连锁结果将继续进行 4 个步骤,如下图所示