Khi truy cập dịch vụ XML-RPC sử dụng xmlrpc/client
bằng ruby, nó sẽ ném một số OpenSSL::SSL::SSLError
khi chứng chỉ máy chủ không hợp lệ. Làm thế nào tôi có thể làm cho nó bỏ qua lỗi này và tiến hành kết nối?Làm thế nào tôi có thể làm cho khách hàng xmlrpc của ruby bỏ qua lỗi chứng chỉ SSL?
8
A
Trả lời
12
Hóa ra nó là như thế này:
xmlrpc = ::XMLRPC::Client.new("foohost")
xmlrpc.instance_variable_get(:@http).instance_variable_set(:@verify_mode, OpenSSL::SSL::VERIFY_NONE)
đó làm việc với ruby 1.9.2, nhưng rõ ràng là chọc vào internals, vì vậy câu trả lời thực sự là "API không cung cấp một cơ chế như vậy, nhưng đây là một hack ".
0
Trên thực tế khách hàng đã được cập nhật, bây giờ ai có quyền truy cập trực tiếp đến các kết nối 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
Nhưng thiết lập tốt hơn ca_file
hoặc ca_path
. Tôi vẫn không thấy tùy chọn để áp dụng cấu hình như vậy cho các cuộc gọi _async
.
Cập nhật: tìm thấy một workaround bởi khỉ vá các đối tượng khách hàng:
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
Vì vậy, bạn cần cả hai, cách tiếp cận cũ và vá khỉ. Chúng ta cũng thêm một biến mẫu, nếu không phương thức mới không thể thấy giá trị thực.
Các vấn đề liên quan
- 1. Nhận SSLHandshakeException: handshake_failure mặc dù khách hàng của tôi bỏ qua tất cả các chứng chỉ
- 2. Bỏ qua chứng chỉ SSL không hợp lệ
- 3. Làm thế nào để bỏ qua một lỗi chứng chỉ với C# 2.0 WebClient - mà không có giấy chứng nhận
- 4. bỏ qua xác thực chứng chỉ ssl trong lật đổ
- 5. RestSharp - Bỏ qua các lỗi SSL
- 6. Tôi làm cách nào để hỗ trợ xác thực Chứng chỉ ứng dụng khách SSL?
- 7. Có cách nào để làm cho Firefox bỏ qua các chứng chỉ ssl không hợp lệ không?
- 8. Không có Chứng chỉ SSL?
- 9. Sử dụng chứng chỉ Wcf SSl trên Tcp mà không có chứng chỉ ứng dụng khách (chỉ phía máy chủ)
- 10. Yêu cầu Python - Lỗi SSL cho chứng chỉ phía máy khách
- 11. Làm thế nào tôi có thể làm cho nẹp bỏ qua nơi tôi khai báo các biến của tôi?
- 12. Cách triển khai Chứng chỉ thông báo đẩy của Apple cho trang web của khách hàng
- 13. Cách bỏ qua xác minh chứng chỉ SSL trong open-uri?
- 14. Làm thế nào tôi có thể chuyển byte theo khối cho khách hàng?
- 15. Chứng chỉ khách hàng bị xích
- 16. Làm thế nào để sửa chữa curl: (60) giấy chứng nhận SSL: Invalid chuỗi chứng chỉ
- 17. SSL Android - Không có chứng chỉ ngang hàng
- 18. Làm thế nào để tắt thu hồi chứng chỉ cho một khách hàng của dịch vụ WCF?
- 19. Bỏ qua các lỗi chứng chỉ SSL không hợp lệ khi gọi các dịch vụ web trong .Net
- 20. Làm cách nào để tôi có thể thiết lập Chứng chỉ SSL khác nhau cho vhost trên Apache?
- 21. Tôi có thể tạo chứng chỉ SSL tự ký cho Windows Azure bằng chỉ sử dụng makecert.exe không?
- 22. SSL/TLS không có chứng chỉ
- 23. Ứng dụng ASP.NET MVC an toàn với chứng thực SSL và chứng chỉ ứng dụng khách
- 24. Làm thế nào tôi có thể bỏ qua các lỗi lint chỉ thị góc với Vim và cú pháp
- 25. OpenSSL Bỏ qua lỗi chứng chỉ tự ký
- 26. Nút nodej có thể tạo chứng chỉ SSL không?
- 27. Chứng chỉ SSL CNAME
- 28. Lỗi SSL - Nhận ngoại lệ SSL/TLS khi sử dụng HttpWebRequest với chứng chỉ ứng dụng khách
- 29. Chứng chỉ SSL Nodejitsu
- 30. Lỗi chứng chỉ SSL với Weblogic trong Internet Explorer