且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Heroku Rails Net :: HTTP:OpenSSL :: SSL :: SSLError:SSL_connect返回= 1 errno = 0状态= SSLv3读取服务器证书B:证书验证失败

更新时间:2022-11-06 22:10:53

Heroku无法验证您的服务器的证书是否由其识别的CA根有效签名。这可能是因为:


  1. 您的证书未由CA或中间人签名(即自签名)

  2. 您的证书由Heroku不知道的CA签名(不太可能)

  3. API服务器没有提供正确的中间证书来帮助Heroku连接它到一个有效的CA根。 (很可能)

尝试 openssl s_client -showcerts -connect your-api-host.com:443从你的shell。您应该看到如下所示的内容:

  depth = 3 C = SE,O = AddTrust AB,OU = AddTrust External TTP Network,CN = AddTrust External CA Root 
验证返回:1
depth = 2 C = GB ST =更大的曼彻斯特L = Salford O = COMODO CA有限公司CN = COMODO RSA证书颁发机构
验证返回:1
depth = 1 C = GB,ST =更大的曼彻斯特,L =索尔福德,O = COMODO CA有限公司,CN = COMODO RSA域验证安全服务器CA
验证返回:1
深度= 0 OU =域控制验证,OU =正面SSL,CN = www.coffeepowered.net
验证退货:1

您特别希望确保链中的所有证书都返回 verify return:1 。如果这从你的shell运行,那么你的机器可能已经安装了根证书,而你的Heroku实例没有。