gpt4 book ai didi

ruby-on-rails - Ruby - 使用 SSL 连接并通过客户端证书进行身份验证 - sslv3 警报错误证书

转载 作者:太空宇宙 更新时间:2023-11-03 13:34:07 25 4
gpt4 key购买 nike

我正在尝试连接一个通过 SSL 访问特定站点并查询我在该站点上的数据的网络爬虫。该站点的身份验证是通过自签名数字证书进行的。目前我想访问该站点,我将此证书以 .pfx 格式上传到我的 api,将其转换为 .pem,当我尝试使用此证书访问该站点时,响应带有状态 403(禁止访问)。但是,当我尝试使用 .pfx 格式的证书通过浏览器访问该站点时,我通常会得到它。我已经尝试使用 Mechanize,它工作了一段时间(直到几个月前它工作),但随后它开始出现错误:SSL_connect returned = 1 errno = 0 state = SSLv3 read finished A: sslv3 alert bad certificate该站点很旧,不经常接收更新。之后我已经尝试使用 net/http lib 并且错误仍然存​​在,我尝试使用 httprb gem,最后我尝试使用 Faraday。所有尝试都以上面引用的错误或响应状态 == 403 结束。我该怎么做才能连接?我的脚本有问题吗?它是否缺少我需要通过的任何信息?

代码:

# Faraday customs method:

class FaradayHttp
def with_openssl
system "openssl pkcs12 -in my-certificate-path -out certificate-output-path -nodes -password pass:certificate-password"

def cert_object
OpenSSL::X509::Certificate.new File.read("certificate-output-path")
end

# create PKey
def key_object
OpenSSL::PKey.read File.read("certificate-output-path")
end


faraday = Faraday::Connection.new 'https://example-site.com',
:ssl => {
certificate: cert_object,
private_key: key_object,
version: :SSLv3,
verify: false
}
faraday
end
end

# Controller that try to connect with the ssl server:

agent = FaradayHttp.new.with_openssl
page = agent.get '/login_path'

最佳答案

# mypki will prompt you for certificates
require 'mypki'

# faraday will use certificates from mypki
require 'faraday'

faraday = Faraday::Connection.new 'https://example-site.com'
faraday.get '/login_path'

关于ruby-on-rails - Ruby - 使用 SSL 连接并通过客户端证书进行身份验证 - sslv3 警报错误证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45718565/

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