SSL CA证书的PHP问题(路径?访问权限?)

SSL CA证书的PHP问题(路径?访问权限?),php,curl,Php,Curl,我得到这个错误: “SSL CA证书(路径?访问权限?)有问题” 执行以下操作时: $curl = curl_init('https://example.com' . ($method == 'GET' && $params ? '?' . $params : '')); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0); $response

我得到这个错误:

“SSL CA证书(路径?访问权限?)有问题”

执行以下操作时:

$curl = curl_init('https://example.com' . ($method == 'GET' && $params ? '?' . $params : ''));

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0); 
$response = curl_exec($curl);

print curl_error($curl)
在另一台服务器上正常工作

SSL正在使用NSS。
PHP 5.3.6通过重命名nssdb使其工作:

mv /etc/pki/nssdb /etc/pki/nssdb.old

如果这发生在两台使用PayPal IPN的服务器上,两台服务器几乎同时使用

修复方法是重新启动Apache。

如果您遇到“SSL CA证书(路径?访问权限?)问题”,这很可能意味着您已经删除了
/etc/pki/tls/certs/
中的所有内容,或者设置了无效权限(CHMOD)


如果您使用的是RHEL/CentOS,请尝试
yum重新安装刚刚升级到PHP5.5.17的openssl ca证书-y

,此时问题开始出现。服务器运行PayPal事务,cURL在出现以下错误时开始失败:“SSL CA证书(路径?访问权限?)有问题”


我试着重新生成证书,修改卷曲选项,但没有任何效果解决方案是简单地重新启动服务器(在我的例子中是CentOS 6.5)。希望这对某人有所帮助。

在更新软件包后,这件事发生在我身上

一旦我重新启动apache,它就被修复了

然后我在生产服务器上安装了它,并再次获得了它。 这一次,在/etc/pki/tls/certs下的证书上出现了混乱/

备份文件,此命令将修复它:


curlhttp://curl.haxx.se/ca/cacert.pem -o/etc/pki/tls/certs/ca bundle.crt在Ubuntu上,您需要安装ca证书,以允许基于SSL的应用程序通过以下方式检查SSL连接的真实性:

sudo apt-get install ca-certificates

请参阅:

由于某些原因,此解决方案对我无效。问题似乎是由libcurl的升级引起的。在我的情况下,我不想任何验证,但我似乎不能禁用整个东西。有人有其他的建议吗?也有。发生了自动更新,创建了一个新的/etc/pki/nssdb/pkcs11.txt(并将旧的移动到/etc/pki/nssdb/pkcs11.txt.rpmnew)。文件内容相同。日志中没有警告或其他信息。我不知道自动更新是否是罪魁祸首。无论如何,重新启动php fpm确实解决了这个问题。至少值得一提的是,简单而优雅地重新启动Apache是不够的。我必须重新启动服务(即
服务httpd restart
)。不知道为什么会有不同,但确实如此。对于那些在CentOS上使用nginx+php fpm的人:
sudo服务php fpm restart
应该这样做,trickI可以确认这对我也有帮助。在上下尝试找出为什么PHP中的cURL可以在CLI上工作而不能在Apache中工作之后,简单的Apache重启解决了这个问题。RHEL 6.5.这对任何运行Jetty服务器的人来说都是成功的吗?类似于这个问题:我知道这是一个有点老的问题,但你能选择一个“正确的答案”吗?已经选择了适合我的答案。我同意;重新启动服务器也解决了我的问题:)这一点,而不是重新启动/重新启动帮助了我。而且可能
apt传输https