我如何告诉Ruby的OpenSSL库忽略自签名证书错误?(How do I tell Ruby

2019-08-17 20:45发布

我试图使用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

但调用new(SERVICE_URL)吹了“ OpenSSL::SSL::SSLError: certificate verify failed 。” 我该怎么做相当于driver.options['protocol.http.ssl_config.verify_mode'] = OpenSSL::SSL::VERIFY_NONE第一个调用来检索WSDL本身?

Answer 1:

我把一个名为“文件soap/property ”我的加载路径上,例如:

- lib/
    - foo.rb
    - foo/
        - bar.rb
    - soap/
        - property

并把这个文件中:

client.protocol.http.ssl_config.verify_mode = OpenSSL::SSL::VERIFY_NONE

另外,如果您有多个设置具有相同前缀,您可以使用组语法:

[client.protocol.http]
ssl_config.verify_mode = OpenSSL::SSL::VERIFY_NONE
...


Answer 2:

试试这个:

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


Answer 3:

我碰到这个网址偶然发现: https://gist.github.com/fnichol/867550 。这可能是谁是有类似的问题有用的人。



文章来源: How do I tell Ruby's OpenSSL library to ignore a self-signed certificate error?