2013-02-19 5 views
6

私はcurlを使用してPayPal IPNを確認していますが、エラー:SSL certificate problem: unable to get local issuer certificateがスローされます。同じコードが開発サーバー上で動作していて、クライアントサーバーに移動したときには動作しません。PayPal IPN:ローカル発行者証明書を取得できません

私は、PayPalエクスプレスチェックアウトによる支払い、またはコーディングパートの変更、またはserver.Curl上で行う必要のある設定がサーバー上で既に有効になっているため、ssl証明書を購入する必要があります。どんな助けもありがとう。

このため、以下の私のコード、およびその還元テストページ:

$req = HAVING PARAMETERS FROM PAYPAL; 

$ch = curl_init("https://www.sandbox.paypal.com/cgi-bin/webscr"); 
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $req); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); 
curl_setopt($ch, CURLOPT_FORBID_REUSE, 1); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Connection: Close')); 

curl_exec($ch); 
if(curl_errno($ch)) 
{ 
    echo 'Curl error: ' . curl_error($ch); 
} 
+0

[Paypal Access - SSL証明書:ローカル発行者証明書を取得できません](http://stackoverflow.com/questions/17478283/paypal-access-ssl-certificate-unable-to-get-local-issuer) -certificate) – jpklzm

答えて

8

あなたはSSL接続を検証するためにカールを言っているが、あなたは妥当性を検証するためにどのようなことを言っていません。

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); 

あなたが追加することによって、信頼するCAのの最新のリストを指していることを確認してください:

curl_setopt($ch, CURLOPT_CAPATH, "./cacert.pem"); 

あなたは、最新のcacertリストを自分で、私が持っていない場合cURLメンテナーから提供されたものをダウンロードすることをお勧めします:cacert.pem

4

あなたはCURLOPT_CAINFOPEMファイルへのポイント)ではないCURLOPT_CAPATHPEMファイルを含むディレクトリへポイントを)したいです。

関連する問題