2010-12-08 105 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