【发布时间】:2018-03-07 10:06:07
【问题描述】:
两天前,我开始在我的应用程序的生产服务器上看到此错误(在暂存时一切正常)。我在这里找到了很多关于 SO 的主题,但没有一个为我解决了这个问题。
这是导致此错误消息的一段代码:
@client = Savon.client(wsdl: wsdl_url)
#@client = Savon.client(wsdl: wsdl_url, ssl_verify_mode: :none) # this sovles the problem, but I don't want to skip the verification
在 SO 上,我还发现一个可能的解决方案可能是创建一个初始化文件并将以下内容放在那里:
require 'open-uri'
require 'net/https'
module Net
class HTTP
alias_method :original_use_ssl=, :use_ssl=
def use_ssl=(flag)
#self.ca_path = Rails.root.join('lib/ca-bundle.crt').to_s
self.ssl_version = :TLSv1_2 # added
self.ca_file = '/etc/ssl/certs/ca-certificates.crt' # the file exists
self.verify_mode = OpenSSL::SSL::VERIFY_PEER
self.original_use_ssl = flag
end
end
end
但不幸的是,这并没有解决错误。我还尝试在生产 Ubuntu (14.04) 服务器上重新安装证书
sudo apt-get install openssl ca-certificates
包已经升级了,可惜错误还在。
任何提示我可以做些什么来摆脱错误?
编辑:我应该如何或从哪里开始调试?
【问题讨论】:
-
我建议您使用 OpenSSL CLI 工具检查服务器证书,如下所示:
openssl s_client -connect example.com:443您要连接的主机的证书实际上可能无效(即已过期)。
标签: ruby-on-rails ruby ssl certificate savon