我们正在使用Drupal / Ubercart站点,最近我注意到付款请求正在失败。
在Drupal日志中,我看到了如下所示的错误:
cURL错误: SSL证书问题:无法获得本地颁发者证书
我找到了许多解决方案,并尝试实现它们,但没有结果。我尝试过的一些事情是:
/etc/php5/fpm/php.ini文件以包含行curl.cainfo = /srv/keys/cacert.pem (这是我从http://curl.haxx.se/ca/cacert.pem下载的文件)。uc_authorizenet.module文件中添加代码,以直接指定cainfo:curl_setopt($ch, CURLOPT_CAINFO, "/srv/keys/cacert.pem");。在采取这些步骤之前,我确保安装和更新了ca-certificates包。每次更改之后,我都会重新启动php5-fpm和nginx,但是仍然会遇到相同的错误,说明它如何无法获得本地颁发者证书。
谢谢你的帮助!
发布于 2015-03-19 03:37:45
问题是https://secure.authorize.net/gateway/transact.dll的根CA (以及authorize.net上的其他安全urls )没有包含在CA包http://curl.haxx.se/ca/cacert.pem中,这是有充分理由的:如果您访问页面并查看证书路径中的根CA的详细信息,您将注意到Sha1拇指指纹是99 a6 9b e6 1a fe 88 6b 4b 2b 82 00 7c b8 54 fc 31 7e 15 39。因特网上的搜索将引导您找到此页面https://blog.mozilla.org/security/2014/09/08/phasing-out-certificates-with-1024-bit-rsa-keys/,这说明此根证书不再受信任。解决方案在一个类似的问题中提供:How comes authorize.net uses a certificate that is signed with a CA that is not in the well known curl.haxx.se/ca/cacert.pem list?
https://stackoverflow.com/questions/28755487
复制相似问题