Ruby - jiraSOAP - 关闭OpenSSL证书验证

How do I turn off certificate verification in a gem like jiraSOAP. the verification is inbuilt, but I really don't need that verification since the server & client are my properties. It should be doable to tweak the gem to stop this verification.

https://github.com/Marketcircle/jiraSOAP/blob/master/lib /jiraSOAP.rb

此证书验证错误正在阻止我转移到我的项目。我尝试了其他来自论坛的解决方案,以升级我的/etc/ssl/cert ,将 OpenSSL :: SSL :: VERIFY_PEER = OpenSSL :: SSL :: VERIFY_NONE 添加到我的项目。但他们都没有工作。

require 'jiraSOAP'
jira = JIRA::JIRAService.new "https://server/rpc/soap/jirasoapservice-v2?wsdl"
jira.login username, password


/usr/local/rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/net/http.rb:799:in `connect': SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (OpenSSL::SSL::SSLError)
0
额外 编辑
意见: 1
“我真的不需要验证,因为服务器和客户端是我的属性”。证书验证(以及主机名验证)可以确保您的客户端确实与目标服务器进行通话。事实上,他们是你的财产是无关紧要的:你仍然要确保你确实与你的服务器通信。
额外 作者 Bruno,

1 答案

我能够解决它修改Handsoap gem忽略只有我的主机证书检查。

在宝石路径中修改文件 -

      handsoap-1.1.8/lib/handsoap/http/drivers/net_http_driver.rb

在这个新的http客户端之后修改 -

      http_client = Net::HTTP.new(url.host, url.port)

添加这个 -

      #Added these new lines below 
      if url.host == "server" #ignore cert check only for this host
      http_client.verify_mode = OpenSSL::SSL::VERIFY_NONE 
      end
0
额外
再次,不要忽略证书验证。这就是保证你正在与你想要的主机通话的原因。否则,您可能正在与冒充它的主机通话。
额外 作者 Bruno,