以下代码返回退出代码 58。
来自 cURL 文档: CURLE_SSL_CERTPROBLEM (58) 本地客户端证书有问题。
// create a new CURL resource
$ch = curl_init();
// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, $URL);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_SSLCERT, getcwd() . $CERT);
curl_setopt($ch, CURLOPT_SSLCERTPASSWD,"XXXXX");
curl_setopt($ch, CURLOPT_SSLVERSION, 3);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content Type: text/xml',
'User-Agent: XXXXX',
'User-Name: XXXXX'
));
$RESPONSE = curl_exec($ch);
var_dump($RESPONSE);
// close CURL resource, and free up system resources
curl_close($ch);
有什么我想念的吗?
最佳答案
确保 getcwd() 中的文件。 $CERT
存在并且是有效的 PEM 证书。如果看起来没问题,请设置以下选项以获取更多 SSL 认证详细信息输出到 STDERR:
curl_setopt($ch, CURLOPT_CERTINFO, true);
请注意,此设置仅在 CURLOPT_VERBOSE
设置为 true 时有效,您已经设置了该选项。
关于PHP - 使用 cURL 访问 HTTPS (SSL) 保护的站点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10395385/