2016-09-29 54 views
1

我嘗試使用紅寶石Web服務,但它似乎是一個問題與它的SSL配置和紅寶石2:「SSLV3警報握手失敗」的紅寶石2

>> require "open-uri" 
=> true 
>> open("https://w390w.gipuzkoa.net/WAS/HACI/HFAServiciosProveedoresWEB/services/FacturaSSPPWebServiceProxyPort") {|f| p f.content_type } 
OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv2/v3 read server hello A: sslv3 alert handshake failure 

我和捲曲嘗試和OpenSSL和它的工作原理:

curl https://w390w.gipuzkoa.net/WAS/HACI/HFAServiciosProveedoresWEB/services/FacturaSSPPWebServiceProxyPort 
openssl s_client -connect w390w.gipuzkoa.net:443 

它也可以使用Ruby 1.9:

irb(main):001:0> require "open-uri" 
=> true 
irb(main):003:0> open("https://w390w.gipuzkoa.net/WAS/HACI/HFAServiciosProveedoresWEB/services/FacturaSSPPWebServiceProxyPort") {|f| p f.content_type } 
"text/html" 

紅寶石2,我已經使用TLS試過了,沒有蘇CCESS

>> OpenSSL::SSL::SSLContext::DEFAULT_PARAMS[:ssl_version] = :TLSv1 
=> :TLSv1 
>> open("https://w390w.gipuzkoa.net/WAS/HACI/HFAServiciosProveedoresWEB/services/FacturaSSPPWebServiceProxyPort") {|f| p f.content_type } 
OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=unknown state: sslv3 alert handshake failure 

>> OpenSSL::SSL::SSLContext::DEFAULT_PARAMS[:ssl_version] = :TLSv1_2 
=> :TLSv1_2 
>> open("https://w390w.gipuzkoa.net/WAS/HACI/HFAServiciosProveedoresWEB/services/FacturaSSPPWebServiceProxyPort") {|f| p f.content_type } 
OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=unknown state: wrong version number 

https://www.ssllabs.com/ssltest/analyze.html?d=w390w.gipuzkoa.net檢查服務器的SSL配置,它返回這個錯誤:「評估失敗:意外的失敗」,因爲我可以用紅寶石2訪問幾個類似的web服務,我想他們有一些誤配置。

任何想法如何使用ruby 2訪問此webservice?

回答

1

這是一個相當糟糕的服務器配置。 Comodo's SSL Analyzer似乎更寬鬆,並顯示了四個受支持的密碼套件。 Cipher suites section from SSL Analyzer另外,服務器支持TLSv1.0。現在

,我無法找到一個資源聯機,表示如果這些密碼套件被默認在Ruby中2禁用的,但這裏的東西,你可以嘗試:用OpenSSL::SSL::SSLContext::DEFAULT_PARAMS[:ciphers] = "DES-CBC3-SHA" 密碼

  1. 實現最佳的密碼的名稱從OpenSSL ciphers獲得。

  2. 試圖立即連接應該顯示這個錯誤作爲網站的CA是不信任:

    OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed

  3. 您可以添加使用ssl_ca_cert或繞過驗證此CA(不推薦)使用ssl_verify_mode: OpenSSL::SSL::VERIFY_NONE。例如,

     
    open(" https://w390w.gipuzkoa.net/WAS/HACI/HFAServiciosProveedoresWEB/services/FacturaSSPPWebServiceProxyPort ", {ssl_verify_mode: OpenSSL::SSL::VERIFY_NONE}) {|f| p f.content_type } 
    

你也可以給Net :: HTTP一個鏡頭。

+0

謝謝!與'DES-CBC3-SHA'工作,並感謝密碼列表,很難找到,紅寶石文檔上的鏈接將是非常有用的! –

+0

https://www.openssl.org/docs/man1.0.2/apps/ciphers.html或'man ciphers' –

2

由於Sweet32服務器只支持很少的密碼,大部分完全不安全(導出密碼,DES-CBC-SHA)並且至少有一點安全密碼(DES-CBC3-SHA)被認爲是不安全的。機會很高,因爲這種不安全感,客戶端的現代TLS堆棧將會因握手而失敗。

相關問題