Pebble's Diary

プログラマーの作業メモ

OpenSSL::SSL::SSLError

railsアプリがなんか次のような500エラーを吐くようになった。

OpenSSL::SSL::SSLError (SSL_connect returned=1 errno=0 state=SSLv3 read finished A: unexpected message)

外部のサーバにhttpsでアクセスしているところで出ているっぽい。 サーバのnginx.confをいじってSSLv3を使わないようにしたら、直った。 やったことは/etc/nginx/nginx.confのファイルに以下を追加した。

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

[追記]
gemをバージョンアップしたり追加したりしたら、また出るようになった。
CentOS

opensslのバージョンを見てみる。

$ openssl version
OpenSSL 1.0.0-fips 29 Mar 2010

だいぶ古いぞ。
バージョンを上げてみる。
$ sudo yum update openssl

$ openssl version
OpenSSL 1.0.1e-fips 11 Feb 2013

これで治ったっぽい。