security - SSL 错误 : unable to get local issuer certificate

标签 security ssl https openssl ssl-certificate

我在 Debian 6.0 32 位服务器上配置 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;

我使用描述的方法链接了我的证书 here

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

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

测试

证书在 Safari 和 Chrome 上正确验证,但在 Firefox 上不正确。初步查找,可能是CA的问题。

我探索了 similar question 的答案,但无法找到解决方案,因为我不太了解每个证书的用途。

我使用 openssl 的 s_client 来测试连接,收到的输出似乎表明与 the similar question 相同的问题。 .错误如下:

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 响应的完整详细信息(证书和不必要的信息被截断)here .

我也看到警告:

No client certificate CA names sent

这可能是问题所在吗?如何确保 nginx 发送这些 CA 名称?

尝试解决问题

我试图通过直接从 GlobalSign 下载根 CA 来解决问题,但收到了同样的错误。我使用 update-ca-certificates 命令更新了我的 Debian 服务器上的根 CA,但没有任何改变。这可能是因为我的提供商发送的 CA 是正确的,所以它导致证书被链接两次,这无济于事。

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

后续步骤

请让我知道是否有什么我可以尝试的,或者如果我只是将整个配置不正确。

最佳答案

jww 是对的——您引用了错误的中间证书。

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

关于security - SSL 错误 : unable to get local issuer certificate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24372942/

相关文章:

Firefox 扩展中的 Javascript 范围/安全问题

java - 在 VPS 托管公司上上传应用程序安全吗?

c# - 如何为 IIS 创建自己的证书颁发机构?

android - Android 应用程序客户端和服务器通信的 SSL 安全性

ssl - 从特定域捕获数据包转储

python - 使用 SSH 进行安全的 Python 聊天——如何?

python - 如何在 Python 代码中隐藏用户名/密码?

java - 收到致命警报 : handshake_failure webservice

python - 发送邮件时出现 SSL 错误

git - 使用 `git config --global credential.helper ' 缓存的 git 凭据缓存有多安全?