我正在尝试用 Ruby 编写一个 HTTPS 客户端。它将使用 HTTPS 连接到服务器,传递身份验证令牌(通过单独的登录过程获得)和 SSL 客户端证书。
我正在使用rest-client执行以下操作:
client = RestClient::Resource.new(url,
:ssl_client_cert => OpenSSL::X509::Certificate.new(File.read('./certificate/client-2048.pem')),
:ssl_client_key => OpenSSL::PKey::RSA.new(File.read('./certificate/client-2048.key'), ''),
:verify_ssl => OpenSSL::SSL::VERIFY_NONE)
# ...
headers = {
'X-Application' => APP_KEY,
'X-Authentication' => @session_token,
'content-type' => 'application/json',
'Accept' => 'application/json'
}
response = client.post(request, headers)
这可行,但我想做的是使用 keep-alive 来避免每次我想提出请求时都必须经历建立连接的整个过程。所涉及的延迟使我正在编写的监控应用程序的用处大大降低。
但是,我似乎找不到提供以下内容的 Ruby 库:
- HTTPS 支持
- SSL 客户端证书支持
- 活着
休息客户端 有一个拉取请求,应该提供它。httparty有persistent_httparty但如果它支持 SSL 客户端证书,则没有它的文档。
我可以分叉rest-client,合并现在已经有点腐烂的拉取请求,然后使用它。但我肯定在这里遗漏了一些东西......是否有一个现有的图书馆可以提供我正在寻找的东西?或者 httparty 的一些文档解释了 SSL 客户端证书与该库的使用?
任何帮助将不胜感激。