gistyでpostするとcertificate verify failed
一昨日あたりからgistyでpostできなくて困ってました。SSLの認証のあたりで失敗しているようです。
adhocな解決方法ですが、とりあえず自分の環境でさえ動けば良いという人は参考になるかもしれません。
errorの内容
gisty post anything-file Error: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
crtファイルを明示的に指定して渡してあげるとpostできるようになります。
crtファイルの探し方
locateとgrepを使うと楽にみつけられます。
% locate certs | grep '\.crt$' /etc/ssl/certs/ca-certificates.crt # ubuntuなら
lib/gisty.rbにca_fileを追加
lib/gisty.rb*1のコードを書き換えます。
diff --git a/lib/gisty.rb b/lib/gisty.rb index 55a6667..7e4a1ff 100644 --- a/lib/gisty.rb +++ b/lib/gisty.rb @@ -157,6 +157,7 @@ class Gisty https.use_ssl = true https.verify_mode = OpenSSL::SSL::VERIFY_PEER https.verify_depth = 5 + https.ca_file = "/etc/ssl/certs/ca-certificates.crt" res = https.start {|http| http.request(req) } case res when Net::HTTPSuccess, Net::HTTPRedirection
動作検証
とりあえず、てきとーにgistyのREADME.rdocでもpostしてみます。
% gisty post README.rdoc Initialized empty Git repository in /home/nao/sandbox/gisty/665920/.git/ remote: Counting objects: 3, done. remote: Compressing objects: 100% (2/2), done. remote: Total 3 (delta 0), reused 0 (delta 0) Receiving objects: 100% (3/3), done.
うまくいきました。良かった。良かった。