curl:(60)SSL证书:无法获得本地颁发者证书

时间:2015-03-04 07:35:57

标签: php wordpress .htaccess ssl curl

刚刚在我们的服务器上安装了Comodo证书,(centos 5)https工作正常,该网站可以正常使用https。但是我们的wordpress插件之一

.htaccess file contains rules to rewrite url https://example.com/w3tc_rewrite_test into https://example.com/?w3tc_rewrite_test which, if handled by plugin, return "OK" message. The plugin made a request to https://example.com/w3tc_rewrite_test but received: SSL certificate problem: unable to get local issuer certificate instead of "OK" response.

执行命令:curl https://example.com 结果:

curl: (60) SSL certificate problem: unable to get local issuer certificate
外部服务器上的

curl: (60) Peer certificate cannot be authenticated with known CA certificates

我已经下载了最新的ca证书,手动指向php.ini中的crt / pem文件都无济于事......

还将CA服务器证书更改为comodo提供的CAroot。

openssl s_client -connect example.com:443

CONNECTED(00000003) 28211:错误:140790E5:SSL例程:SSL23_WRITE:ssl握手失败:s23_lib.c:188:

openssl s_client -tls1 -connect example.com:443

CONNECTED(00000003) depth = 0 / OU =域控制验证/ OU = PositiveSSL / CN = www.example.com 验证错误:num = 20:无法获得本地颁发者证书 验证回报:1 depth = 0 / OU =域控制验证/ OU = PositiveSSL / CN = www.example.com 验证错误:num = 27:证书不受信任 验证回报:1 depth = 0 / OU =域控制验证/ OU = PositiveSSL / CN = www.example.com 验证错误:num = 21:无法验证第一个证书 验证返回:1

2 个答案:

答案 0 :(得分:1)

检查您的网站SSLLabs是否存在问题,尤其是缺少连锁证书。至少您提到的网站swedendedicated.com(在您上次编辑之前)存在严重问题:

  Chain issues  Incomplete

因此,它适用于大多数缺少证书缓存的浏览器或将下载缺少的证书。非浏览器通常既不会缓存也不会下载丢失的证书,因此会失败。

修复方法是重新配置服务器以包含缺少的证书。如果您对如何执行此操作有疑问,请查看从证书提供商处获得的说明。如果这无助于在serverfault.com上询问。

答案 1 :(得分:0)

这是一个非常普遍的问题。它说它无法在证书存储中找到中间证书。尝试手动剥离中间证书并安装它。

我在使用 Python 请求模块时遇到了这个问题。

我还创建了一个 ca.pem 文件并将服务器证书放在那里(服务器公钥)。我将中间 CA 证书与服务器证书放在一起。然后我得到:

无法找到颁发者证书。

然后我在 pem 文件中添加了根 ca 并成功了。