如何在像jiraSOAP这样的gem中关闭证书验证。验证是内置的,但我真的不需要验证,因为服务器&客户是我的财产。应该可以调整gem以停止此验证。
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 :(得分:0)
我能够解决它修改Handsoap gem而忽略我的主机的cert check。
要在gems路径中修改的文件 -
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