2014-07-02 42 views
0

我正在使用Rightmove及其實時數據饋送,我們收到了一個(自簽名?)證書(.p12文件),我們必須將其插入到我們的瀏覽器/ PC以連接到測試服務器,這一切都很好。SSL證書 - 第三方

現在我們正在編寫自己的腳本,並通過CURL連接到測試服務器,但是我們正在從我們的服務器加載此腳本,並且它無法訪問測試服務器(握手失敗 - 驗證,研究看起來像它期望的證書是有道理的),但我們如何獲得訪問權限?他們不是很有幫助,我想知道是否需要將此證書添加到我們的域/服務器以獲得身份驗證?

希望你能幫助!

回答

-1

您將使用CURL命令的CURLOPT_SSLCERT & CURLOPT_SSLCERTPASSWD選項。例如

$url = "https://www.example.com"; 
$cert_file = 'certificate_file.pem'; 
$cert_password = 'password'; 

$ch = curl_init(); 

$options = array( 
    CURLOPT_RETURNTRANSFER => true, 
    CURLOPT_FOLLOWLOCATION => true, 
    CURLOPT_SSL_VERIFYHOST => false, 
    CURLOPT_SSL_VERIFYPEER => false, 

    CURLOPT_USERAGENT => 'Useragent', 
    CURLOPT_URL => $url , 
    CURLOPT_SSLCERT => $cert_file , 
    CURLOPT_SSLCERTPASSWD => $cert_password , 
); 

curl_setopt_array($ch , $options); 

$output = curl_exec($ch); 
+1

想出你的評論,非常感謝!正在使用CURLOPT_CAINFO,但似乎SSLCERT是一個使用(與PEM文件的組合,必須將我的p12轉換爲PEM) – Jamie000012

+0

確保您使用'CURLOPT_SSL_VERIFYHOST = true'和'CURLOPT_SSL_VERIFYPEER = 2',否則您的連接易受MITM攻擊](http://stackoverflow.com/a/13742121/372643)。你的確會爲此正確設置'CURLOPT_CAINFO'(或'CAPATH')。 – Bruno