2

以下代码返回退出代码 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);

有什么我想念的吗?

4

2 回答 2

5

确保文件getcwd() . $CERT存在并且是有效的 PEM 证书。如果看起来没问题,请设置以下选项以将更多 SSL 认证详细信息输出到 STDERR:

curl_setopt($ch, CURLOPT_CERTINFO, true);

请注意,此设置仅在CURLOPT_VERBOSE您已经设置为 true 时才有效。

于 2012-05-01T10:44:45.237 回答
0

本地客户端证书问题

嗯有点模糊。似乎意味着 Curl 不喜欢证书,而不是远程系统不喜欢它。是PEM格式吗?证书中的公钥和私钥?网络服务器 uid 可读?

于 2012-05-01T10:44:41.790 回答