`connect': SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (OpenSSL::SSL::SSLError)
これは証明書を検証できないためだが。
とりあえず対処法
require 'openssl' OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE I_KNOW_THAT_OPENSSL_VERIFY_PEER_EQUALS_VERIFY_NONE_IS_WRONG=true
とやって、検証をオフにすることが出来る。
証明書を入れるなら。
curl -o `ruby -ropenssl -e 'puts OpenSSL::X509::DEFAULT_CERT_FILE'` 'http://curl.haxx.se/ca/cacert.pem'
として証明書を持ち込むことができる。が、個人的には得たいのしれない証明書入れるのも Noneも同じようなもんだと思ってる。
正体の知れない証明書とは、curlの証明書が不安なのでなく、HTTPSで転送されない証明書が不安なのですね。
あと、作ったスクリプトのコピー先で動かず、原因がコピー先に証明書が無いことだったりすます。NONEを採用しがちな理由ですねぇ。ダメってわかるけど。自分で使うぶんにはこれでいいというか。