/etc/openssl/cert.pemが古いせいでTwitterの認証とかがこける件
今日もハマったぜ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のバージョン確認。
- pow上でphpを使えるようにする
- 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.
これでできるようになりました。