【发布时间】:2013-06-18 07:55:36
【问题描述】:
我正在使用 cURL 通过CURLOPT_POST 发送一些数据。之前相同的代码运行良好,但在移动到新服务器后,cURL 不再通过https 运行。来自其他站点 (domain.com) 的人向我发送了日志文件,但他们没有收到任何信息。然后我尝试使用curl_error() 出错,我遇到了 SSL 问题,但不知道如何解决。
代码:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,'https://track.domain.com/api.php');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $param);
curl_exec($ch);
$error = curl_error($ch);
curl_close($ch);
错误是:
SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
我在 Google 上搜索过,但无法理解问题所在。
我的域需要 SSL 证书吗?我不确定旧服务器中是否有 SSL。从代码中可以看出,我不需要return。那么,在这种情况下,我也应该有 SSL 吗?
我需要domain.com 的证书吗?
我是否需要联系托管公司以重新编译支持 SSL 的 cURL?
有什么想法吗?
注意:我不想通过将CURLOPT_SSL_VERIFYPEER 和CURLOPT_SSL_VERIFYHOST 设置为false 来解决问题。
curl_version():
Array
(
[version_number] => 464896
[age] => 3
[features] => 34333
[ssl_version_number] => 0
[version] => 7.24.0
[host] => i686-pc-linux-gnu
[ssl_version] => OpenSSL/0.9.8b
[libz_version] => 1.2.3
[protocols] => Array
(
[0] => dict
[1] => file
[2] => ftp
[3] => ftps
[4] => gopher
[5] => http
[6] => https
[7] => imap
[8] => imaps
[9] => pop3
[10] => pop3s
[11] => rtsp
[12] => smtp
[13] => smtps
[14] => telnet
[15] => tftp
)
)
【问题讨论】:
标签: php security curl ssl https