gpt4 book ai didi

ruby - 连接:SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (OpenSSL::SSL::SSLError)

转载 作者:数据小太阳 更新时间:2023-10-29 06:39:40 37 4
gpt4 key购买 nike

我在获取 SSL 来验证证书时遇到了麻烦。我完全不知道证书是如何工作的,所以这是一个主要的障碍。这是我在运行脚本时遇到的错误:

c:/Ruby191/lib/ruby/1.9.1/net/http.rb:611:in `connect': SSL_connect returned=1 e
rrno=0 state=SSLv3 read server certificate B: certificate verify failed (OpenSSL
::SSL::SSLError)

相关代码如下:

client = Savon::Client.new order_svc

request = client.create_empty_cart { |soap, http|
http.auth.ssl.cert_file = 'mycert.crt'
http.auth.ssl.verify_mode = :none
http.read_timeout = 90
http.open_timeout = 90
http.headers = { "Content-Length" => "0", "Connection" => "Keep-Alive" }
soap.namespaces["xmlns:open"] = "http://schemas.datacontract.org/2004/07/Namespace"
soap.body = {
"wsdl:brand" => brand,
"wsdl:parnter" => [
{"open:catalogName" => catalogName, "open:partnerId" => partnerId }
] }.to_soap_xml

}

感谢任何帮助。

最佳答案

检查你的 cert.pem 和你的 key.pem

证书 key 应该有一个

-----BEGIN CERTIFICATE-----
MIIFGDCCBACgAwIBAgIKG1DIagAAAAAAAzANBgkqhkiG9w0BAQsFADCBvDEkMCIG
....
-----END CERTIFICATE-----

你的key.pem应该有

-----BEGIN PRIVATE KEY-----
CSqGSIb3DQEJARYVY2Fjb250YWN0QGVzY3JlZW4uY29tMQswCQYDVQQGEwJVUzEP
....
-----END PRIVATE KEY-----

它可能有一些证书,但这对这种情况并不重要。 (尽管它对我有用,因为如果没有额外的证书,curl 就无法工作)我正在与之交谈的网络服务具有良好的根 CA,但客户端身份验证 key 不受信任,因此这可能是额外证书使 curl 工作的原因。

从您的客户证书中获取这些是导致我出现问题的原因。

这对我有用。

openssl pkcs12 -in Client.pfx -clcerts -nokeys -out cert.pem
openssl pkcs12 -in Client.pfx -nodes -out key.pem

每个都会提示您输入导入密码如果需要,您可以设置 pem 密码。 (稍后您必须在 ruby​​ 代码中设置它)

require 'savon'
client = Savon::Client.new "https://service/Service.asmx?wsdl"
client.http.auth.ssl.cert_key_file = "key.pem"
client.http.auth.ssl.cert_file = "cert.pem"
client.http.auth.ssl.verify_mode=:peer

p client.wsdl.soap_actions

你也可以用curl测试

curl -v  -E  key.pem  https://services/Service.asmx?wsdl

关于ruby - 连接:SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (OpenSSL::SSL::SSLError),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4325563/

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