SSL 错误: 无法获得本地颁发者证书

我在 Debian 6.032位服务器上配置 SSL 时遇到了麻烦。我对 SSL 相对比较陌生,所以请耐心等待。我会尽可能多地提供信息。
注意: 为了保护服务器的身份和完整性,已经更改了真正的域名。

配置

服务器使用 nginx 运行。它的配置如下:

ssl_certificate           /usr/local/nginx/priv/mysite.ca.chained.crt;
ssl_certificate_key       /usr/local/nginx/priv/mysite.ca.key;
ssl_protocols             SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers               HIGH:!aNULL:!MD5;
ssl_verify_depth          2;

我使用所描述的 给你方法链接我的证书

cat mysite.ca.crt bundle.crt > mysite.ca.chained.crt

其中 mysite.ca.crt是签名机构给我的证书,而 bundle.crt是我的签名机构也发送给我的 CA 证书。问题是我没有直接从 GlobalSign 购买 SSL 证书,而是通过我的托管提供商 Singlehop 购买。

测试

该证书在 Safari 和 Chrome 上正确验证,但在 Firefox 上无法验证。初步搜索显示,这可能是 CA 的一个问题。

我研究了 类似的问题的答案,但是没有找到解决方案,因为我真的不理解每个证书的用途。

我使用 openssl 的 s _ client 测试连接,接收到的输出似乎表明与 类似的问题相同的问题。错误如下:

depth=0 /OU=Domain Control Validated/CN=*.mysite.ca
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=0 /OU=Domain Control Validated/CN=*.mysite.ca
verify error:num=27:certificate not trusted
verify return:1

可以找到 openssl 响应的完整细节(证书和不必要的信息被截断) 给你

I also see the warning:

No client certificate CA names sent

Is it possible that this is the problem? How can I ensure that nginx sends these CA names?

解决问题的尝试

I attempted to solve the problem by downloading the root CA directly from GlobalSign, but received the same error. I updated the root CA's on my Debian server using the update-ca-certificates command, but nothing changed. This is likely because the CA sent from my provider was correct, so it led to the certificate being chained twice, which doesn't help.

0 s:/OU=Domain Control Validated/CN=*.mysite.ca
i:/C=BE/O=GlobalSign nv-sa/CN=AlphaSSL CA - SHA256 - G2
1 s:/O=AlphaSSL/CN=AlphaSSL CA - G2
i:/C=BE/O=GlobalSign nv-sa/OU=Root CA/CN=GlobalSign Root CA
2 s:/C=BE/O=GlobalSign nv-sa/OU=Root CA/CN=GlobalSign Root CA
i:/C=BE/O=GlobalSign nv-sa/OU=Root CA/CN=GlobalSign Root CA

Next Steps

Please let me know if there is anything I can try, or if I just have the whole thing configured incorrectly.

462188 次浏览

Jww 是正确的ーー您引用了错误的中间证书。

由于您已经获得了 SHA256证书,因此需要 SHA256中间件。你可以从这里抓住它: http://secure2.alphassl.com/cacert/gsalphasha2g2r1.crt