5
RestClientを使用してSSLクライアント証明書を使用して保護されたページを取得しようとしています。次のように私のコードは次のとおりです。RestClientがSSLクライアント証明書を使用してリソースを取得できません
require 'restclient'
p12 = OpenSSL::PKCS12.new(File.read('client.p12'), 'password')
client = RestClient::Resource.new('https://example.com/',
:ssl_client_key => p12.key,
:verify_ssl => OpenSSL::SSL::VERIFY_NONE)
client.get
私はそれを実行すると、私は次の失敗を参照してください。私は同じエラーを取得するよう
1.9.3-p374 :007 > client.get
RestClient::BadRequest: 400 Bad Request
from /home/duncan/.rvm/gems/ruby-1.9.3-p374/gems/rest-client-1.6.7/lib/restclient/abstract_response.rb:48:in `return!'
from /home/duncan/.rvm/gems/ruby-1.9.3-p374/gems/rest-client-1.6.7/lib/restclient/request.rb:230:in `process_result'
from /home/duncan/.rvm/gems/ruby-1.9.3-p374/gems/rest-client-1.6.7/lib/restclient/request.rb:178:in `block in transmit'
from /home/duncan/.rvm/rubies/ruby-1.9.3-p374/lib/ruby/1.9.1/net/http.rb:745:in `start'
from /home/duncan/.rvm/gems/ruby-1.9.3-p374/gems/rest-client-1.6.7/lib/restclient/request.rb:172:in `transmit'
from /home/duncan/.rvm/gems/ruby-1.9.3-p374/gems/rest-client-1.6.7/lib/restclient/request.rb:64:in `execute'
from /home/duncan/.rvm/gems/ruby-1.9.3-p374/gems/rest-client-1.6.7/lib/restclient/request.rb:33:in `execute'
from /home/duncan/.rvm/gems/ruby-1.9.3-p374/gems/rest-client-1.6.7/lib/restclient/resource.rb:51:in `get'
from (irb):7
from /home/duncan/.rvm/rubies/ruby-1.9.3-p374/bin/irb:13:in `<main>'
を、私は、これが認証に失敗しているかなり確信していますクライアント証明書をインストールしていない場合はブラウザです。
私はOpenSSL::SSL::VERIFY_NONE
を使用しています。サーバーには自己署名証明書があるため、これを無視して渡す正しい値だと思います。
この作業をどのようにするかについてのご意見は、非常に高く評価されます。詳細なドキュメントへのポインタ、または別のGemの提案が機能する可能性があります。私は宝石のドキュメントやGoogle :(
「VERIFY_NONE」のソリューションを持つことは、非常に多くのレベルで間違っています... sslを使用する際のポイントは何ですか? –
@ JarmoPertman 'VERIFY_NONE'は、自己署名証明書を持つサーバーに対してローカルに開発する場合に便利です。 – WildlyInaccurate
ええ、しかし、実際に何ができるかについての説明なしに、SOが「VERIFY_NONE」で受け入れられた回答でいっぱいの場合、このようなコードはどこにでも結びつき、証明書は検証されない可能性が高いです。 –