使用 Ruby SOAP 忽略 SSL 错误

问题描述 投票:0回答:2

我正在尝试在 https url 上使用 wsdl。参考如何告诉 Ruby 的 OpenSSL 库忽略自签名证书错误?

当我尝试这个时:

... OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE ::SOAP::WSDLDriverFactory.new(SERVICE_URL).create_rpc_driver ...

我收到此错误:

ReportsController#wsdlCaller 中的语法错误

/rails-root/app/controllers/reports_controller.rb:220:动态常量赋值... = OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE::SO...

我该如何解决这个问题?

谢谢!

ruby wsdl
2个回答
1
投票

好的,所以我将语法更改为

const_set(OpenSSL::SSL::VERIFY_PEER,OpenSSL::SSL::VERIFY_NONE)

我解决了动态常量赋值错误。这可能是因为我试图为方法中的常量赋值。

我现在遇到了一个新错误:未初始化的常量 OpenSSL::SSL::VERIFY_PEER。有谁知道为什么会发生这种情况?

救命!谢谢。


0
投票

尝试以下禁用证书验证:

require 'httpclient'
client = HTTPClient.new
client.ssl_config.verify_mode = OpenSSL::SSL::VERIFY_NONE

否则,您可以尝试更新您的证书(下面以 Macos 为例): $ 酿造升级红宝石 $ 酿造更新--系统 $ gem 更新 httpclient $brew安装openssl $brew 链接 openssl --force

© www.soinside.com 2019 - 2024. All rights reserved.