Rubyアプリで"certificate verify failed (OpenSSL::SSL::SSLError)"
を取得していて、Mac OS X(Mountain Lion)システムで古いopensslを更新するときが来たと判断しました。
ここ から最新のソースを取得し、通常の
...そしてすべてが明らかなエラーなしで完了しました。しかし、新しいopensslが古いopensslに取って代わっていないことに気づきました。
$ which openssl
/usr/bin/openssl
$ /usr/bin/openssl version
OpenSSL 0.9.8x 10 May 2012
$ /usr/local/ssl/bin/openssl version
OpenSSL 1.0.1e 11 Feb 2013
私は、既存のものを壊すのを恐れて、重要なシステムファイルをいじり回すことをためらっています。推奨されるアプローチは何ですか?/usr/bin/opensslを/ usr/local/ssl/binバージョンへのシンボリックリンクに置き換えることを考えています。それはうまくいくでしょうか?
システムコピーよりもローカルコピーを優先するには、それをシェルPATH変数に追加する必要があります。
export PATH="/usr/local/ssl/bin:$PATH"
シェルを起動するたびにこれを実行する場合は、ホームディレクトリの.bash_profileに追加するだけです。
ただし、Rubyは新しいOpenSSLに対して再コンパイルする必要があるため、これで問題が解決するわけではありません(新しいOpenSSLに付属する更新されたルート証明書ファイルでこれが仮想的に修正されると想定します)問題) rvm または rbenv のいずれかをインストールし、Rubyを再構築することをお勧めします。これらのツールはどちらも homebrew を介してopensslをインストールすることをお勧めします。 =。