gpt4 book ai didi

ruby-on-rails - 如何使用证书对 http 网络请求进行身份验证?

转载 作者:可可西里 更新时间:2023-11-01 16:12:08 25 4
gpt4 key购买 nike

我需要能够向要求客户端使用特定证书进行身份验证的 Web 服务发送 http get 请求。 .net 代码如下所示:

if (certificate != null) 
request.ClientCertificates.Add(certificate);
return request;

我还没有弄清楚 rails 中的等价物。有什么建议吗?

最佳答案

如果使用基本的 net/https,那就很简单了:

require 'net/https'
require 'uri'

uri = URI.parse(ARGV[0] || 'https://localhost/')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true if uri.scheme == "https" # enable SSL/TLS
http.key = pkey #Sets an OpenSSL::PKey::RSA or OpenSSL::PKey::DSA object.
http.cert= cert #Sets an OpenSSL::X509::Certificate object as client certificate

http.start {
http.request_get(uri.path) {|res|
print res.body
}
}

如果将它们组合在一起,则必须使用一些 openssl 实用程序方法来处理它们。

对于自定义的 http 客户端,您应该阅读 ruby​​ openssl 库的文档以了解详细信息。

但简而言之,这样的事情应该可行:

ctx = OpenSSL::SSL::SSLContext.new
ctx.key = private_key_file
ctx.cert = certificate_file

..然后为您的连接提供上下文。

关于ruby-on-rails - 如何使用证书对 http 网络请求进行身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4118835/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com