monoの開発ブログ

OS X上のprecompiledなRubyでcertificate verify failed

precompiledなRubyをrbenvで使っていたところ、HTTPSで通信しようとした時にcertificate verify failedになってしまいました。

調べてみたところ、存在しないディレクトリのcert.pemを見に行っているようです。

% ruby -ropenssl -e "p OpenSSL::X509::DEFAULT_CERT_FILE"
"/etc/openssl/cert.pem"

このディレクトリが本来どうあるべきなのかは分かりませんが、OpenSSLをHomebrewでインストールしている場合には/usr/local/etc/opensslに同様のディレクトリが作成されるので、シンボリックリンクを作って対処してみました。

% brew install openssl
% sudo ln -s /usr/local/etc/openssl /etc/openssl

今のところ問題なく動いているようです。rbenvで公式にサポートされるまではこれで凌ごうかなと。