05/06/23 12:06:18
>>129
Wikiのリファレンスには書いてないけどopen-uriはhttpsに対応してるようです。
RDocのリファレンスだと見えると思う。
ただopen-uri.rb中で初期化処理が
if target.class == URI::HTTPS
require 'net/https'
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_PEER
store = OpenSSL::X509::Store.new
store.set_default_paths
http.cert_store = store
end
で、証明書ファイルを指定してなくてOpenSSLまかせっぽい。
opensslは証明書を持ってないのでどっかから(IEとかMozillaのソースとか)
インポートしないといけないんじゃないかなぁ。
http.verify_mode = OpenSSL::SSL::VERIFY_NONEにすると通すようになるけど穴になるので対策としてはたぶん以下。
a.OpenSSLを設定する
b.証明書ファイルを設定できるようにする
c.VERIFY_PEERとVERIFY_NONEを切り替え可能にする