簡體   English   中英

遷移到新服務器后,cURL出現SSL問題

[英]SSL issue with cURL after moving to a new server

我正在使用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。 從代碼中可以看出,我不需要返回。 那么,在這種情況下,我也應該擁有SSL嗎?

我需要domain.com的證書嗎?

我是否需要聯系托管公司以重新編譯cURL並支持SSL?

有任何想法嗎?


注意:我不希望通過將CURLOPT_SSL_VERIFYPEERCURLOPT_SSL_VERIFYHOSTfalse


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
        )

)

下載了Mozilla的捆綁文件,命名為mozilla.pem

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

問題是您的CA(證書頒發機構)列表沒有遠程站點證書的頒發者。 如果您嘗試連接到具有自簽證書的服務器,則此方法無法修復。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM