Php 迁移到新服务器后,SSL问题与cURL

Php 迁移到新服务器后,SSL问题与cURL,php,security,curl,ssl,https,Php,Security,Curl,Ssl,Https,我正在使用cURL通过CURLOPT\u POST发送一些数据。相同的代码在迁移到新服务器之前工作正常,但在迁移到新服务器之后,cURL不再通过https工作。来自另一个网站(domain.com)的家伙向我发送了日志文件,但他们没有收到任何东西。然后我尝试使用curl\u error()获取一个错误,我遇到了一个SSL问题,但不知道如何修复它 代码: $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,'https://track.domain.c

我正在使用cURL通过
CURLOPT\u POST
发送一些数据。相同的代码在迁移到新服务器之前工作正常,但在迁移到新服务器之后,cURL不再通过
https
工作。来自另一个网站(
domain.com
)的家伙向我发送了日志文件,但他们没有收到任何东西。然后我尝试使用
curl\u 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
我在谷歌上搜索了这个,但不明白问题出在哪里

我需要我们域的SSL证书吗?我不确定旧服务器中是否存在SSL。你可以从代码中看到,我不需要返回。那么,在这种情况下,我也应该使用SSL吗

我需要
domain.com
的证书吗

我是否需要联系托管公司以使用SSL支持重新编译cURL

有什么想法吗


注意:我不希望通过将
CURLOPT\u SSL\u VERIFYPEER
CURLOPT\u SSL\u VERIFYHOST
设置为
false来解决问题


curl\u 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
        )

)
下载了Mozilla的文件,名为
Mozilla.pem

curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,true); 
curl_setopt($ch,CURLOPT_CAINFO,'mozilla.pem'); 

问题是您的CA(证书颁发机构)列表没有远程站点证书的颁发者。如果您试图连接到具有自签名证书的服务器,此方法将无法修复

我应该自己做还是最好联系托管公司?你可以自己做,这是用户可配置的空间。我的网站根本没有SSL。另一个网站有。我发送的数据类似于“发送并忘记”,即不需要返回。在这种情况下,双方都需要SLL吗?当服务器请求时,需要客户端证书,因此我猜测,由于这在以前的托管公司中起作用,您只是缺少了我提供给您从何处下载的
CA
文件。嗯,它正在使用此文件。但这有点让人困惑。我从未在ftp中看到
.pem
文件。我必须对每个cURL请求调用这个文件,这很奇怪。默认情况下,我是否应该联系主机添加此捆绑包?