cURL PHP和SSL CA证书问题

时间:2018-12-10 16:37:14

标签: php ssl curl

我无法在下面的PHP代码中使用CA证书

$curl = curl_init($service_url);
curl_setopt($curl, CURLOPT_VERBOSE, true);
curl_setopt($curl,CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl,CURLOPT_SSL_VERIFYPEER, true );
curl_setopt($curl,CURLOPT_CAINFO, __DIR__.'/my-cert.cer' );
curl_setopt($curl, CURLOPT_CAPATH, __DIR__.'/my-cert.cer');
curl_setopt($curl,CURLOPT_RETURNTRANSFER, true);
$curl_response = curl_exec($curl);
if ($curl_response === false) {
    $curl_status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
    $curl_error = curl_error($curl);
    curl_close($curl);
}
curl_close($curl);
$decoded = json_decode($curl_response);

print_r($decoded);

它总是抛出错误

  

SSL CA证书存在问题(路径?访问权限?)

我看过其他类似的问题,但所有这些问题都指向/etc/pki/tls/certs而不是仅针对该代码指定的证书。

PS

我已注释掉

curl_setopt($curl, CURLOPT_CAPATH, __DIR__.'/var/www/html/my-cert.cer');

现在出现该错误:

  

TLS握手时出错,尝试使用SSLv3 ...

PS2。

它必须与NSS兼容,因为我已更新为nss-3.36.0-9.el6_10.x86_64并使其正常工作,但随后Web应用程序的一部分停止了正常工作。

0 个答案:

没有答案