Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
OrganizationEventAdvent CalendarQiitadon (β)
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

homebrew で入れた openssl を使って Ruby をコンパイルすると SSL 利用時に証明書エラーが発生する場合の対応

さて、皆さん割と homebrew で openssl 入れて brew link しちゃってる人も多いと思います。そんな環境でその openssl を使って Ruby をコンパイルすると、OpenSSL 利用時に証明書エラーが発生します。

$ pry
[1] pry(main)> require 'open-uri'
=> true
[2] pry(main)> open('https://www.google.com/').read
OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
from ~/.rbenv/versions/2.0.0-rc2/lib/ruby/2.0.0/net/http.rb:917:in `connect'


$ ruby -ropenssl -e "p OpenSSL::X509::DEFAULT_CERT_FILE"


$ wget -O /usr/local/etc/openssl/cert.pem http://curl.haxx.se/ca/cacert.pem


curl.haxx.se って?

cURL のサイトです。

に詳しく書いてありますが、curl のサイト上で配布してる cacert.pem は、Mozilla で利用している証明書です。

(しかしハッシュ値も表示されて無くて https でもないので、いささかこの証明書を突っ込むの不安ですね…)

homebrew から証明書を入れる

同等の証明書は curl-ca-bundle という formula で提供されているので、

$ brew install curl-ca-bundle
$ brew list curl-ca-bundle
$ cp /usr/local/Cellar/curl-ca-bundle/1.87/share/ca-bundle.crt /usr/local/etc/openssl/cert.pem

することで、証明書を設置でき、SSL でのエラーは発生しません。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Help us understand the problem. What are the problem?