以下代码返回退出代码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);
我有什么遗失的吗?
答案 0 :(得分:4)
确保getcwd() . $CERT
中的文件存在并且是有效的PEM证书。如果看起来没问题,请设置以下选项以获得更多SSL认证详细信息输出到STDERR:
curl_setopt($ch, CURLOPT_CERTINFO, true);
请注意,此设置仅在CURLOPT_VERBOSE
设置为true时才有效。
答案 1 :(得分:0)
嗯有点模糊。似乎意味着Curl不喜欢证书,而不是远程系统不喜欢它。它是PEM格式吗?证书中的公钥和私钥?可以通过webserver uid阅读吗?本地客户端证书的问题