/etc/openssl/cert.pemが古いせいでTwitterの認証とかがこける件

参考:OpenSSL Errors and Rails – Certificate Verify Failed

今日もハマったぜw TwitterとかFacebookの認証がうまくいかなくて、

Twitter::Error at /admins/edit_social

SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed

と。。。 このエラーコードだけをググってもWindowsとか色々でる。

僕は、 rvmでMacOSなのでその辺もアンド検索をすることで参考サイトが出てきました。

まずrvmのバージョン確認。

  1. pow上でphpを使えるようにする
  2. middleman上でphpを使えるようにする の2つを行うことになります。
$ rvm -v

rvm 1.26.10 (latest) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]

sslの証明書のステータス確認。

$ rvm osx-ssl-certs status all

Certificates for /etc/openssl/cert.pem: Old.
Certificates for : Old.

古いらしい。そりゃTwitter認証とかできないよね。 sslの証明書をアップデート。

$ rvm osx-ssl-certs update all

Updating certificates for /etc/openssl/cert.pem: Updating certificates in '/etc/openssl/cert.pem'.
mkdir: /etc/openssl: Permission denied
mkdir -p "/etc/openssl" failed, retrying with sudo
cyborgninja password required for 'mkdir -p /etc/openssl':

sudoでやらなかったのでパスワードを求められました。

sudo apachectl restart
rvm osx-ssl-certs update all
Updating certificates for /etc/openssl/cert.pem: Updating certificates in '/etc/openssl/cert.pem'.
mkdir: /etc/openssl: Permission denied
mkdir -p "/etc/openssl" failed, retrying with sudo
cyborgninja password required for 'mkdir -p /etc/openssl':
and sudo mkdir worked
Updated.
Updating certificates for /etc/openssl/cert.pem: Already up to date.

これでできるようになりました。

機械忍者

某SEO会社(?)勤務。 多分日本語よりHTMLの方が得意です。 最近はRubyとかいうキラキラな言語も勉強中です。 SEOはもう標準スキルになってきてると思うので正直もうあんまり昔ほどの熱意は感じません。 新たに躍動してる人も多いですしね。 だれか強化骨格コスプレあったら教えてください。