Próbuję użyć RestClient pobrać stronę, która jest zabezpieczona za pomocą certyfikatu klienta SSL. Mój kod wygląda następująco:RestClient braku GET zasobu za pomocą certyfikatu klienta 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
Gdy go widzę następujące awaria:
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>'
jestem prawie pewien, że to awaria w celu uwierzytelnienia, jak uzyskać ten sam błąd w przeglądarkę, jeśli nie zainstaluję certyfikatu klienta.
Używam OpenSSL::SSL::VERIFY_NONE
, ponieważ serwer ma samopodpisany certyfikat i uważam, że jest to wartość poprawna do pominięcia.
Wszelkie sugestie, w jaki sposób uzyskać tej pracy byłoby bardzo mile widziane - nawet wskaźnik do jakiejś szczegółowej dokumentacji, czy sugestia innego Gem mógł pracować. Ja nie miałem dużo szczęścia albo z docs Gem lub Google :(
Posiadanie rozwiązania z 'VERIFY_NONE' jest tak źle na tylu poziomach ... Jaki jest sens używania ssl kiedy nie zweryfikować certyfikat? –
@JarmoPertman 'VERIFY_NONE' jest przydatna przy opracowywaniu lokalnie na serwerze z certyfikatu z podpisem własnym. – WildlyInaccurate
Tak, ale jeśli tak jest pełen akceptowanych odpowiedzi z 'VERIFY_NONE' bez żadnego wyjaśnienia tego, co faktycznie może zrobić, to jest wysoce prawdopodobne, że kod tak skończy się wszędzie i będą weryfikowane żadnych certyfikatów. –