詳しいことは後日、もう少し追記する予定。
経緯
2020年8月11日の夕方ごろ(日本時間)から paypal-sdk-rest
gem を使った支払いで下記のエラーが発生するようになった。
OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=error: certificate verify failed (unable to get local issuer certificate)
対応方法
https://curl.haxx.se/docs/caextract.html から最新の cacert.pem
をダウンロードして、 config/certs/cacert.pem
に配置して、 config/paypal.yml
に ssl_options
の ca_file
の設定を追加する。
config/paypal.yml
development: &default
mode: sandbox
client_id: xxx
client_secret: xxx
ssl_options:
ca_file: config/certs/cacert.pem
production:
mode: live
client_id: xxx
client_secret: xxx
この設定で、ローカル開発環境、 production 環境ともに想定通り動作することを確認した。
別の解決方法
参考
- paypal/PayPal-Ruby-SDK: Ruby SDK for PayPal RESTful APIs
- ruby on rails - OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=error: certificate verify failed (unable to get local issuer certificate) - Stack Overflow
- Remove Support of Verisign G5 Root Certificate
- curl - Extract CA Certs from Mozilla