2011-06-20 6 views
6

Staram się zdobyć klejnot Savon, aby połączyć się z jednym z naszych serwerów. Wciąż dostaję błąd stwierdzający, że nie mogę przejść przez ssl. Przeczytałem wiele tutoriali i poprawek, ale żaden nie działa.Savon SSL Issue

Każda pomoc doceniona - to sprawi, że mój poniedziałek, jeśli uda mi się ominąć :-).

Błąd:

D, [2011-06-20T09:43:02.002993 #10328] DEBUG -- : Retrieving WSDL from: http://path_to_wsdl:4443/sm/services/mailing/2009/03/02?wsdl 
D, [2011-06-20T09:43:02.129057 #10328] DEBUG -- : HTTPI executes HTTP GET using the httpclient adapter 
/.rvm/gems/ruby-1.9.2-p0/gems/httpclient-2.2.1/lib/httpclient/session.rb:276:in `connect': SSL_connect returned=1 errno=0 state=SSLv2/v3 read server hello A: sslv3 alert unexpected message (OpenSSL::SSL::SSLError) 

Mój kod:

require 'savon' 

client = Savon::Client.new "path_to_my_wsdl" 

client.http.auth.ssl.cert_file = "path/cert.pem" 

client.http.auth.ssl.cert_key_file = "/path/localhost.key" 
client.http.auth.ssl.verify_mode = :none 

client.wsse.credentials "username", "password" 

client.wsdl.soap_actions 
+2

Czy jesteś pewien SSL działa na porcie 4433? –

+0

Z tego co wiem - kiedy uzyskuję dostęp do pliku wsdl, to jest on pod https - jeśli robię to za pomocą przeglądarki, oznacza to jako samopodpisany certyfikat. Zastanawiam się, dlaczego/w jaki sposób verify_mode =: none nie kopie. – Northband

+0

której wersji klejnotu httPI używasz? – rubiii

Odpowiedz

1

Nie wiem, czy pan to zrobił już, ale gdy musiałem użyć Savon dla projektu znalazłem to niezwykle użyteczne, aby upewnić się Serwer Soap działał tak jak powinienem z SoapUI (http://www.eviware.com/). Następnie można wyprowadzić żądanie SOAP z dwóch i porównać ..

0

Istnieje bug w obsłudze sieci/protokołu Ruby z handshake SSL.

Spróbuj zmuszając wersji SSL, aby ominąć błąd:

client.http.auth.ssl.sock.ssl_version="SSLv3" 
2

Savon wsparcie 2.x ssl globalna opcja:

Savon.client(ssl_verify_mode: :none) 

i

Savon.client(ssl_version: :SSLv3)