PHP - 使用 cURL 访问 HTTPS (SSL) 保护的站点

标签 php ssl curl https

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

相关文章:

linux - 使用 CURL 添加请求时间戳

php - 从 SetExpressCheckout 获取金额

php - 如何在 Zend 中优化我的查询?

php - 如何将表单值设置为 NULL

php - 使用PHP编程Asterisk PBX?

java - Apache HTTP Server 的间歇性 SSL 握手错误

php - 交响乐 : Error : Attempted to call function "ctype_digit"

Qt 服务器+客户端应用程序 : encryption fails (updated with code)

azure - 为服务结构集群生成客户端证书

shell - 可以curl将远程url中的图像下载到缓存中,然后使用管道进行转换吗?