有効な証明書を使用していても問題が解決しない場合は、CA を有効な形式 (X.509 証明書 PEM) で保存したことを再確認する必要がある場合があります。CA を cacert.pem というファイルにエクスポートしたようです。このファイルが有効であること、および curl が実際にこのファイルを取得できることを確認してください (有効なパスなど)。
証明書のエクスポートを再度試みることができます - ブラウザー (例: Firefox) から、これはブラウザー (例: Firefox) で PayPal https URL にアクセスし、証明書を表示してからエクスポートすることで実行できます。(前述の正しい形式 (X.509 証明書 PEM) を使用していることを確認してください)。
CA を保存したら、これを CURLOPT_CAINFO パラメータに渡します。
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_CAINFO, getcwd() . "/CAcerts/BuiltinObjectToken-EquifaxSecureCA.crt");
より詳細な説明については、この素晴らしい記事を参照してください:
http://unitstep.net/blog/2009/05/05/using-curl-in-php-to-access-https-ssltls-protected-sites/
証明書に関する最後の部分を引用します。
CA 証明書を持っているが、PEM 形式ではない場合 (つまり、Base64 でエンコードされていないバイナリ形式または DER 形式である場合)、OpenSSL などを使用して PEM 形式に変換する必要があります。 .
編集- 証明書のエクスポート後にエラーが発生した場合は、X.509 証明書 PEM (チェーン付き) を使用して証明書を保存することもできます。