AWS/Ruby: OpenSSL::SSL::SSLError が出る問題への対処法(メモ)

Rails アプリケーションを Amazon Linux 上で動かしていて、OpenSSL::SSL::SSLError という例外に遭遇。open-uri の open メソッドで、外部の URL からファイルを取得するところで。

解決法は、http://d.hatena.ne.jp/komiyak/20130508/1367993536 および http://stackoverflow.com/a/5973759/513554にある通り。

簡単に言えば、(1) http://curl.haxx.se/ca/cacert.pem から証明書をダウンロードして適当なパス(例:/usr/local/etc/cacert.pem)に置き、(2) 環境変数 SSL_CERT_FILE にそのパスを指定して Rails アプリケーションを起動、すればOK。

起動スクリプトを /etc/init.d/ に置いているのなら、


export SSL_CERT_FILE=/usr/local/etc/cacert.pem

のような記述をそれに加える。