Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby Net::HTTP客户端证书请求抛出sslv3警报证书未知_Ruby_Authentication_Ssl_Openssl_Ssl Certificate - Fatal编程技术网

Ruby Net::HTTP客户端证书请求抛出sslv3警报证书未知

Ruby Net::HTTP客户端证书请求抛出sslv3警报证书未知,ruby,authentication,ssl,openssl,ssl-certificate,Ruby,Authentication,Ssl,Openssl,Ssl Certificate,我正在尝试向需要客户端证书身份验证的API端点发送POST请求。我有一个由Digicert签署的证书,并且API已配置为验证此证书 如果我提出这样的curl请求: curl -v --request POST --key ./key.pem --cert ./crt.pem --data '{"test": "message"}' https://my-secure-endpoint.com/path 请求成功crt.pem具有完整的证书包 现在,当我

我正在尝试向需要客户端证书身份验证的API端点发送POST请求。我有一个由Digicert签署的证书,并且API已配置为验证此证书

如果我提出这样的
curl
请求:

curl -v --request POST --key ./key.pem --cert ./crt.pem --data '{"test": "message"}'  https://my-secure-endpoint.com/path
请求成功
crt.pem
具有完整的证书包

现在,当我尝试使用Ruby发出相同的请求时,使用以下Net::HTTP代码(也尝试使用RestClient和HttpParty):

我们得到以下例外情况:

'connect_nonblock': SSL_connect returned=1 errno=0 state=error: sslv3 alert certificate unknown (OpenSSL::SSL::SSLError)
当我使用Node(Superagent)时,它也能很好地工作:

Ruby版本:2.6.5p114 OpenSSL:1.0.2q 操作系统:macOS 10.15.6

'connect_nonblock': SSL_connect returned=1 errno=0 state=error: sslv3 alert certificate unknown (OpenSSL::SSL::SSLError)
const fs = require("fs");
const request = require("superagent");

var key = fs.readFileSync("key.pem"),
  cert = fs.readFileSync("cert.pem");

request
  .post("https://my-endpoint.com/path")
  .key(key)
  .cert(cert)
  .then((res) => console.log(res.status));