rubyでSSL利用時に証明書エラーが発生する場合の対応
エラー発生
コマンドラインからtwitter投稿が出来るrubygemのtwを使ってみようと思ったら、起動時にSSL証明書でエラーが発生。
/Users/hoge/.rbenv/versions/2.0.0-p247/lib/ruby/2.0.0/net/http.rb:918:in `connect': SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (Twitter::Error::ClientError)
対応策
対応策としては、証明書のパスを確認し、
$ ruby -ropenssl -e "p OpenSSL::X509::DEFAULT_CERT_FILE"
"/usr/local/etc/openssl/cert.pem"
そこに証明書をダウンロードするという方法。
$ wget -O /usr/local/etc/openssl/cert.pem http://curl.haxx.se/ca/cacert.pem
brweで証明書をインストール
brew
を使っても証明書をインストールする事が出来ます。
$ brew install curl-ca-bundle
$ brew list curl-ca-bundle
/usr/local/Cellar/curl-ca-bundle/1.87/share/ca-bundle.crt
$ cp /usr/local/Cellar/curl-ca-bundle/1.87/share/ca-bundle.crt /usr/local/etc/openssl/cert.pem
cp
もしくはln -s
で先ほど確認した証明書のパスに置いてあげましょう。