1

我正在使用支付网关处理信用卡。要将数据发布到他们的服务器,我在 PHP 中使用 cURL。我有一个颁发给我的域的 SSL 证书,以确保所有 POST 的数据都被加密。因为 SSL 证书已经安装,我还需要为 cURL 使用 SSL 选项吗?如果是这样,根据我的设置,我需要设置哪些选项?

我尝试了以下代码失败:

$ch = curl_init(); 

curl_setopt($ch, CURLOPT_URL,"https://secure.paymentgateway.com/blah.php");
curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)"); 

curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_CAINFO,  getcwd().'/cert/ca.crt');
curl_setopt($ch, CURLOPT_SSLCERT, getcwd().'/cert/mycert.pem');
curl_setopt($ch, CURLOPT_SSLCERTPASSWD, 'password');

curl_setopt($ch, CURLOPT_POST, $count);

curl_setopt($ch,CURLOPT_POSTFIELDS,"variables...");                                                                 

$output = curl_exec($ch);
echo $output;
curl_close($ch);
4

1 回答 1

1

好吧,您已经禁用了验证(我不建议这样做:)curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);。这为您打开了中间人攻击的大门。

这是一个简单的教程,可能会对您有所帮助:

http://developer.paypal-portal.com/pdn/board/message?board.id=ipn&message.id=12754#M12754

于 2009-07-16T18:48:40.243 回答