2010-12-08 36 views
0

我必須發送數據到付款服務器並從中接收結果。我決定使用cUrl來完成。另一方給了我一個ssl證書,就像公鑰一樣(如果我理解的話)。 cUrl調用返回錯誤,抱怨無法設置私鑰,這是我無法理解的,因爲我無法獲取付款服務器的私鑰以解決安全問題。我只需要將我的ssl證書傳遞給支付服務器,以便他們能夠識別我(他們有我的服務器IP,並且我認爲他們給我的證書是私鑰)。支付服務器cUrl http post與ssl證書要求私鑰我沒有

我想我需要模擬瀏覽器發送證書的方式訪問必要的網站,而不是用私鑰簽名信息。

所以問題是 - 如何使cUrl http post?

現在我用這個代碼:

$x = curl_init(); 
$options = array(
    CURLOPT_URL => $serverURL, 
    CURLOPT_VERBOSE => 1, 
    CURLOPT_SSLCERT => getcwd() . "/certificate.pem", 
    CURLOPT_SSL_VERIFYPEER => false, 
    CURLOPT_SSL_VERIFYHOST => 2, 
    CURLOPT_FAILONERROR => 1, 
    CURLOPT_HEADER => true, 
    CURLOPT_POST => 1, 
    CURLOPT_POSTFIELDS => $string, 
    CURLOPT_FOLLOWLOCATION => 0, 
    CURLOPT_RETURNTRANSFER => 1, 
    CURLOPT_TIMEOUT => 5, 
); 

curl_setopt_array($x, $options); 

$data = curl_exec($x); 


if (curl_errno($x)) { 
    echo curl_error($x) . " (" . curl_errno($x) . ")<br/>"; 
} else { 
    echo "reponse: "; 
    var_dump ($data); 
} 

回答

1

CURLOPT_SSL_VERIFYPEER應設置爲true,沒有虛假記載,

+0

也嘗試過 - 沒有效果,錯誤:「無法設置私鑰文件」 – banesto 2010-12-08 09:40:30

0

確定。看來我沒有收到所有的數據。我必須有一把鑰匙和鑰匙才能正常工作。

+0

您能否詳細說明您需要使用哪些證書和相應的密鑰? – 2011-09-26 09:48:45