繁体   English   中英

法拉第宝石 OpenSSL::SSL::SSLError: SSL_connect returned=1

[英]Faraday Gem OpenSSL::SSL::SSLError: SSL_connect returned=1

我有一个自签名证书。 (这是一个实验室环境,由自己的 CA 组成),然后我设法将 CA 证书导入到 Firefox。我正在使用这个 CA 来签署一个站点https://dev.testorg.com

它适用于浏览器。

然而,同样不适用于 Ruby+Faraday。

ruby -v
ruby 2.5.5p157 (2019-03-15 revision 67260) [x86_64-linux-gnu]

Gem版本为faraday (1.1.0)

pry(main)> Faraday.get 'https://dev.testorg.com'
Faraday::SSLError: SSL_connect returned=1 errno=0 state=error: certificate verify failed (unable to get local issuer certificate)

Openssl版本是

openssl version -a
OpenSSL 1.1.1d  10 Sep 2019
built on: Mon Apr 20 20:23:01 2020 UTC
platform: debian-amd64
options:  bn(64,64) rc4(16x,int) des(int) blowfish(ptr) 
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -Wa,--noexecstack -g -O2 -fdebug-prefix-map=/build/openssl-8Ocme2/openssl-1.1.1d=. -fstack-protector-strong -Wformat -Werror=format-security -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DRC4_ASM -DMD5_ASM -DAESNI_ASM -DVPAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPOLY1305_ASM -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2
OPENSSLDIR: "/usr/lib/ssl"
ENGINESDIR: "/usr/lib/x86_64-linux-gnu/engines-1.1"
Seeding source: os-specific

任何指针都会有所帮助。

一种

这为我解决了,

ruby -ropenssl -e 'puts OpenSSL::X509::DEFAULT_CERT_FILE'
/usr/lib/ssl/cert.pem

所以我必须将 append CA 证书发送到 cert.pem

cat testCA.pem >> /usr/lib/ssl/cert.pem

现在

    Faraday.get 'https://dev.testorg.com'
=> #<Faraday::Response:0x0000559399a0b1d0
 @env=
  #<struct Faraday::Env
   method=:get,
   request_body=nil,
   url=#<URI::HTTPS https://dev.testorg.com>,

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM