gpt4 book ai didi

用于 2 路 ssl 身份验证的 Ruby 客户端

转载 作者:太空宇宙 更新时间:2023-11-03 15:08:28 27 4
gpt4 key购买 nike

我有 java web 服务支持2-way ssl auth。所以我有客户端 keystore (client.p12),服务器证书在受信任的存储区中,服务器 keystore 中的客户端证书在受信任的存储区中。

我可以使用浏览器或 postman 轻松调用我的服务(只需要在浏览器证书管理中导入 client.p12),但我在使用 ruby​​ 客户端时遇到问题。

我当前的版本:

require 'rest_client'

p12 = OpenSSL::PKCS12.new(File.read('client.p12'), 'password')

client = RestClient::Resource.new('https://localhost:8080/service',
:ssl_client_cert => p12.certificate,
:ssl_cert_key => p12.key,
:verify_ssl => OpenSSL::SSL::VERIFY_NONE,
:ssl_version => 'TLSv1_2',
:ssl_ciphers => 'ECDHE-RSA-AES128-GCM-SHA256').get

失败:

connect_nonblock': SSL_connect SYSCALL returned=5 errno=0 state=unknown state (OpenSSL::SSL::SSLError)

我的客户端代码有什么问题?

openssl s_client 输出:

$ openssl s_client -connect localhost:8080
....
SSL-Session:
Protocol : TLSv1.2
Cipher : ECDHE-RSA-AES128-GCM-SHA256
...

最佳答案

传递 key 的选项不是:ssl_cert_key,而是:ssl_client_key。这有什么区别吗?

关于用于 2 路 ssl 身份验证的 Ruby 客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38310997/

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