我无法在下面的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应用程序的一部分停止了正常工作。