首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何告诉OpenSSL有关使用Rails ssl_post的传出API调用的新证书?

如何告诉OpenSSL有关使用Rails ssl_post的传出API调用的新证书?
EN

Stack Overflow用户
提问于 2020-09-29 16:17:44
回答 1查看 417关注 0票数 0

FedEx最近为他们的API提供了更新他们的证书,这导致Rails 帖子向active_shipping模块中的服务器抛出错误The SSL connection to the remote server could not be established

该应用程序是Rails 5.0 &Ruby2.3.1,通过OpsWorks在AWS EC2 (Amazon )上服务。

新的证书文件或多或少如下:

  • gateway.fedex.com.pem (包含一个证书)
  • 网关-mediate.pem(包含两个证书)
  • DigiCertGlobalRoot.pem (包含一个证书)

OpenSSL配置:

  • openssl version返回OpenSSL 1.0.1k-fips 8 Jan 2015
  • openssl version -d返回OPENSSLDIR: "/etc/pki/tls"

/etc/pki/tls/内部有一个cert.pem和一个certs目录。我尝试将证书添加到cert.pem并将它们添加到certs目录中。我还尝试将它们添加到/etc/ssl/certs中,并将它们添加到/etc/ssl/certs/ca-bundle.crt/etc/ssl/certs/ca-bundle.trust.crt中。我尝试创建一个SSL_CERT_DIR环境变量,然后创建一个指向这些位置的SSL_CERT_FILE环境变量。

因此,我有了这些新的证书;我如何告诉OpenSSL关于它们的信息?我该把它们放哪儿?我发现了很多关于如何设置证书以保护web请求的主域的文档和建议,但是很少涉及如何配置第三方提供的辅助证书。我觉得任何使用active_shipping并试图访问FedEx API的人都会遇到同样的问题,但我还没有发现有人在讨论这个问题。

(作为奖励,FedEx报道他们将在(一九二零年十月四日)上更新他们的证书,然后在9/26的早些时候更新他们的证书,然后在9/28重新编辑他们的公告页面,以显示证书将在9/26续签。)

EN

回答 1

Stack Overflow用户

发布于 2020-10-04 21:34:38

我终于找到了真相。

ActiveShipping使用ActiveUtils连接到第三方服务器。ActiveUtils使用自己的certfile.pem,需要对其进行更新。

我遵循了建议这里,尽管我还必须为ActiveUtils添加一个覆盖CA_FILE,以便显式地:

  1. 从这里下载最新的包:https://curl.haxx.se/docs/caextract.html
  2. 将文件放在项目中的某个地方。我选择了config/ssl/cacert.pem,就像benjaminwood的例子一样。我必须创建ssl目录,因为它不存在。
  3. 创建一个初始化器,如下所示:
代码语言:javascript
复制
# config/initializers/00_monkeypatch_updated_ca_cert.rb

module ActiveMerchant
  class Connection
    CA_FILE = Rails.root.join('config', 'ssl', 'cacert.pem').to_s
  end
end

module ActiveUtils
  class Connection
    CA_FILE = Rails.root.join('config', 'ssl', 'cacert.pem').to_s
  end
end

让我重新振作起来的...and。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64123630

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档