如何告诉Ruby的OpenSSL库忽略自签名证书错误?

Jam*_*sen 3 ruby soap wsdl openssl certificate

我正在尝试使用Ruby的SOAP支持,如下所示:

SERVICE_URL = 'https://...'
...
def create_driver
  ::SOAP::WSDLDriverFactory.new(SERVICE_URL).create_rpc_driver
  driver.options['protocol.http.ssl_config.verify_mode']  = OpenSSL::SSL::VERIFY_NONE
  driver.options['protocol.http.ssl_config.client_cert']  = @certificate_path
  driver
end
Run Code Online (Sandbox Code Playgroud)

但呼吁new(SERVICE_URL)爆炸" OpenSSL::SSL::SSLError: certificate verify failed." 如何driver.options['protocol.http.ssl_config.verify_mode'] = OpenSSL::SSL::VERIFY_NONE进行第一次调用以检索WSDL本身?

Jam*_*sen 5

soap/property在我的加载路径上放了一个名为" " 的文件,例如:

- lib/
    - foo.rb
    - foo/
        - bar.rb
    - soap/
        - property
Run Code Online (Sandbox Code Playgroud)

把它放在文件中:

client.protocol.http.ssl_config.verify_mode = OpenSSL::SSL::VERIFY_NONE
Run Code Online (Sandbox Code Playgroud)

或者,如果您有多个具有相同前缀的设置,则可以使用组语法:

[client.protocol.http]
ssl_config.verify_mode = OpenSSL::SSL::VERIFY_NONE
...
Run Code Online (Sandbox Code Playgroud)