2

このコードを実行しようとすると

require "net/https"                                                  
require "uri"

uri = URI.parse("https://...") # url hidden
pem = File.read("c.pem")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
http.ca_file = 'ca.pem'
http.cert = OpenSSL::X509::Certificate.new(pem)
http.key = OpenSSL::PKey::RSA.new(pem)
http.verify_mode = OpenSSL::SSL::VERIFY_PEER

request = Net::HTTP::Get.new(uri.request_uri)
response = http.request(request).body

puts response

結果は

/home/nicolas/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/net/http.rb:799:in `connect': 
SSL_connect returned=1 errno=0 state=SSLv3 write certificate verify A: EVP lib (OpenSSL::SSL::SSLError)
    from /home/nicolas/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/net/http.rb:799:in `block in connect'
    from /home/nicolas/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/timeout.rb:54:in `timeout'
    from /home/nicolas/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/timeout.rb:99:in `timeout'
    from /home/nicolas/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/net/http.rb:799:in `connect'
    from /home/nicolas/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/net/http.rb:755:in `do_start'
    from /home/nicolas/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/net/http.rb:744:in `start'
    from /home/nicolas/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/net/http.rb:1284:in `request'

Debian と Ruby 1.9.3-p392 を使用しています。Ubuntu と ruby​​ 1.9.3-p392 を使用して他の環境でこの同じコードを実行すると、このコードは問題なく実行されます。

この問題を解決する方法を知っている人はいますか?

4

0 に答える 0