役に立ちそうもないTips移転版

俺得なTipsを書き連ねるだけのブログ。

RubyでOpenSSLに「確認できへんぞコラ」と怒られたとき

RubyやOpenSSLのバージョンによるかもしれないが、
SSL使おうとすると「certificate B: certificate verify failed」って怒られることがある。
最善かどうかは分からないが、多分「じゃあverify切っちゃえ」で切り抜けるよりはまし(……か?)な解決法。

1. 認証局の証明書? をどーにかして手に入れる。ぐぐった限りcURLのサイトでMozilla由来のファイルが手に入るようだ。
2. どっか適当な場所にファイルを配置。
3. 環境変数 SSL_CERT_FILE に2. のファイルパス(フルパス)を設定。
4. その後から起動するプロセスには3.が効くはず。あとはOpenSSLが3.を頼りに2.を読んでウマー。

当然1. で変なファイル持ってきたら何やってるこっちゃわからんのでちうい。(という点ではむしろあむない?)

9/27追記:
「OS(Windows)が持ってる証明書じゃだめなん?」ということでやってみた。
(インターネットオプションのコンテンツ-証明書からPFXをエクスポートして、opensslツールでpem取り出す)
で、少なくともそのまま食わせただけではだめでしたorz なんでだろ。
違いといえばファイル内の認証局の順序と、
cURLから拾ってきたほうは76桁改行でWindowsから取り出したほうは64桁改行ってことくらいのように見えるが。