概要
rubygems にアクセスする作業のときによく発生する証明書のエラーです
自分は bundle exec rake release
時に発生しました
対処方法を紹介します
環境
- CentOS 7.5.1840
- Ruby 2.5.0p0
背景
CentOS で RHSCL な Ruby を使ってる場合に出ました
解決方法
エラー内容は rubygems にアクセスする際の証明書がおかしい場合に発生します
単純に証明書が古い場合や参照している証明書のパスがおかしい場合に発生するようです
まず自分の環境の ruby がどのパスの証明書を参照しているか確認しましょう
bundle exec ruby -ropenssl -e "p OpenSSL::X509::DEFAULT_CERT_FILE"
これで証明書のパスが確認できます
自分は /etc/pki/tls/cert.pem
でした
このファイルはシンボリックリンクで実体は /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem
にありました
方法1: 証明書を更新してみる
まずは証明書を更新してみましょう
念の為バックアップを取得してから実施します
cp /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem{,.back}
curl "https://curl.haxx.se/ca/cacert.pem" -o /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem
こんな感じです
これで再度実行してエラーが解消されるか確認します
方法2: 証明書のパスを指定する
それでもダメな場合は SSL_CERT_FILE
環境変数を使って証明書のパスを指定してみましょう
以下のような感じです
export SSL_CERT_FILE=/etc/pki/tls/cert.pem && bundle exec rake release
これで実行してエラーが解決されるか確認します
自分はこれでエラーが解決しました
その他
あとは bundler のバージョンを上げたり、rake のバージョンを上げたりすると直ったという記事を見ました
おそらくそれは update したことで証明書が正しく認識されたんだと思います
0 件のコメント:
コメントを投稿