0

次のコードがあります

uri = URI.parse( 'https://my.fancy.uri/with/some/path.ext' )

https = Net::HTTP.new( uri.host, uri.port )
https.use_ssl = true
https.verify_mode = OpenSSL::SSL::VERIFY_PEER
store = OpenSSL::X509::Store.new
store.add_file( File.join( Rails.root, 'config', 'crt', 'correct_ca.crt' ) )
https.cert_store = store

request = Net::HTTP::Post.new( uri.request_uri )
request.set_form_data post_data
request.basic_auth( 'HTTP_USER', 'HTTP_PASS' )
response = https.request( request )

これはエラーを生成します:OpenSSL::SSL::SSLError: SSL_read:: ssl handshake failure

そして私は完全に困惑しています。

4

1 に答える 1

1

どうやら、Ruby はハンドシェイク中にすべての ssl バージョンをチェックしていなかったようです。私はそれについてあまり知りませんが、追加します:

https.ssl_version = :TLSv1

問題を解決しました。

于 2013-02-22T03:11:32.957 に答える