如何在 ruby 中为 OpenSSL 设置 ca-bundle 路径



我在 ruby 中遇到了问题,OpenSSL 无法验证 SSL 证书。我认为这是由于脚本不知道ca-bundle.pem引起的。是否可以手动配置 ca-bundle.pem 的路径?

OpenSSL 使用 SSL_CERT_FILE 环境变量。您可以在 ruby 脚本中使用类似于拉入 OpenSSL 的第一个require之前的内容来设置它:

ENV['SSL_CERT_FILE'] = '/path/to/ca-bundle.pem'

或者,如果您愿意,您可以根据自己的情况在操作系统环境、Web 服务器配置等中设置SSL_CERT_FILE环境变量。

您可以通过以下方式执行此操作:

SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt

这都是因为SSL_CERT_FILE有一个错误的值,它的值可能不存在。因此,您必须将其值设置为证书文件ENV['SSL_CERT_FILE]='path/to/ca-bundle.p' 。如果您使用的是 Rails,则可以将其放入初始值设定项中。如果您想要一个为您做所有事情的宝石,请使用 https://github.com/stevegraham/certified。

最新更新