为什么 ruby 请求宝石没有正确格式化证书

Why are ruby request gems not formatting certs correctly

我正在努力使用证书发出一些安全请求。在邮递员中,我能够包含证书和密钥并毫无问题地提出请求。但在 Rails 中,使用 HTTParty、RestClient 和 Net::HTTP 它不起作用。使用 HTTParty,即使使用 pem 或 ssl_ca_path class 宏,它也不会附加 cert/key。

我按照示例集 here 将 cert/key 附加到请求。当我撬开检查请求时。

这似乎是 OpenSSL::X509::Certificate 模块中的错误,因为所有 gems 都需要一个 OpenSSL::X509 对象。但我在任何网站上都找不到对此的任何参考。任何人都知道为什么这会在邮递员和 javascript 中起作用,但不能 Rails 使用任何顶级 gem 来发出请求?

有了所有的宝石,我用 OpenSSL::X509::Certificate.new(File.read('path/to/cert.pem')) 设置证书,用 OpenSSL::PKey::RSA.new(File.read('path/to/key.pem'))

设置密钥

找到答案了。结果 OpenSSL::X509::Certificate 并没有解析整个证书链。谷歌搜索后,发现这个 post 可以通过猴子修补 Net::HTTP 来为链

接受更多证书

Monkey Patch Net::HTTP