當在ruby中使用xmlrpc/client
訪問XML-RPC服務時,如果服務器證書無效,它將拋出OpenSSL::SSL::SSLError
。我怎樣才能讓它忽略這個錯誤並繼續進行連接?我該如何讓ruby的xmlrpc客戶端忽略SSL證書錯誤?
8
A
回答
12
原來是這樣的:
xmlrpc = ::XMLRPC::Client.new("foohost")
xmlrpc.instance_variable_get(:@http).instance_variable_set(:@verify_mode, OpenSSL::SSL::VERIFY_NONE)
與紅寶石1.9.2工作,但很明顯,在內部被戳,所以真正的答案是」 API不提供這樣的機制,但這裏的黑客「。
0
實際上客戶端已經更新,現在一個人直接訪問HTTP連接: https://bugs.ruby-lang.org/projects/ruby-trunk/repository/revisions/41286/diff/lib/xmlrpc/client.rb
xmlrpc.http.verify_mode = OpenSSL::SSL::VERIFY_NONE
但最好設定ca_file
或ca_path
。 我仍然看不到將這種配置應用於_async
調用的選項。
更新:發現猴子一個解決辦法修補的客戶對象:
xmlrpc_client.http.ca_file = @options[:ca_file]
xmlrpc_client.instance_variable_set(:@ca_file, @options[:ca_file])
def xmlrpc_client.net_http(host, port, proxy_host, proxy_port)
h = Net::HTTP.new host, port, proxy_host, proxy_port
h.ca_file = @ca_file
h
end
所以,你既需要,舊的方法和猴子修補。我們還添加一個實例變量,否則新方法不能看到實際值。
相關問題
- 1. SSL設置:忽略客戶端證書
- 2. 如何忽略定製JMX客戶端中的SSL證書
- 3. C#如何讓SslStream忽略客戶端證書驗證
- 4. 如何使Restlet客戶端忽略SSL證書問題
- 5. WCF SSL客戶端證書錯誤
- 6. Apache Http客戶端SSL證書錯誤
- 7. 如何讓Ruby的OpenSSL庫忽略自簽名證書錯誤?
- 8. 忽略SSL證書錯誤與Wget的
- 9. 忽略使用Jersey客戶端的自簽名ssl證書
- 10. SSL證書客戶端驗證 - 如何?
- 11. 客戶端的SSL證書
- 12. SSL客戶端認證返回錯誤證書錯誤
- 13. 讓serverxmlhttp忽略請求選項客戶端證書
- 14. 如何忽略c#signalr客戶端中的https證書警告?
- 15. 如何使用Mozilla的CA證書的SSL客戶端證書
- 16. 如何忽略WebService請求中的SSL證書錯誤?
- 17. 如何忽略Silverlight中的SSL證書錯誤?
- 18. 如何忽略Guzzle 5中的無效SSL證書錯誤
- 19. 接收SSLHandshakeException:handshake_failure儘管我的客戶端忽略所有證書
- 20. Ruby SCGI/XMLRPC客戶端
- 21. 忽略SSL證書派遣
- 22. 忽略SSL證書在Servlet
- 23. 忽略無效SSL證書
- 24. 忽略ssl證書MKNetworkKit
- 25. Blackberry忽略SSL證書
- 26. NSURLConnection忽略SSL證書?
- 27. SSL客戶端證書認證
- 28. SSL客戶端證書驗證優化
- 29. C#忽略證書錯誤?
- 30. 在生成OData客戶端時忽略SSL錯誤