2011-06-20 56 views
6

我正在努力讓薩貢寶石連接到我們的服務器之一。我不斷收到一個錯誤,指出我無法越過ssl。我已閱讀了大量教程和修復程序,但似乎沒有任何工作。Savon SSL問題

任何幫助讚賞 - 這將使我的星期一,如果我能通過它:-)。

錯誤:

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) 

我的代碼:

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

你一定是SSL在端口4433上運行? –

+0

據我所知 - 當我通過瀏覽器訪問wsdl文件時 - 如果我通過瀏覽器訪問它,它會將其標記爲自簽名證書。我想知道爲什麼/如何verify_mode =:none不踢英寸 – Northband

+0

您使用的是哪種版本的httpi gem? – rubiii

回答

1

不知道,如果你這樣做了,但我不得不使用薩翁的一個項目,我發現它非常有用的,以確保SoapUI(http://www.eviware.com/)認爲應該使用Soap服務器。然後,您可以輸出來自兩者的SOAP請求並進行比較。

0

Ruby的net/http處理SSL握手中有一個bug

嘗試迫使SSL版本得到解決的bug:

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

薩翁2.x的支持SSL的全局選項:

Savon.client(ssl_verify_mode: :none) 

Savon.client(ssl_version: :SSLv3)