0

httpsエンドポイントへのアクセス時に、本番 (Heroku) および開発 (ローカル) インスタンスが動作しています。しかし、過去 2 日間で、恐ろしい OpenSSL エラーが発生し始めました。

OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed

私は StackOverflow とhttp://railsapps.github.io/openssl-certificate-verify-failed.htmlで多くの OpenSSL の失敗した投稿を読みました。

最新の OpenSSL に更新し、以下を実行して確認しました。

ruby -ropenssl -e 'p OpenSSL::OPENSSL_VERSION'
"OpenSSL 1.0.1e 11 Feb 2013"

ただし、まだこのエラーが発生します。

OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed

エンドポイントを指しているhash = JSON.parse(open(_url).read)場所を呼び出すと。_urlhttps

一部のプロバイダーへのアクセスに問題はないようです。たとえば、: を発行curl -I https://d2chzxaqi4y7f8.cloudfront.net/gems/rake-0.9.2.2.gemすると、うまくいくようです。

私もこれを試してみましたがirb、うまくいくようです:

require 'open-uri'
open 'https://google.com'
=> #<File:/var/folders/dv/s_2dq32n0ggcn65kn61jtmc80000gn/T/open-uri20130630-887-y2cg2q>

これは、エンドポイント プロバイダーが修正する必要があるものですか、それとも OpenSSL のローカルおよび実稼働実装で何かを行う必要がありますか?

4

1 に答える 1