服务器是 centos7,ruby 版本为 2.7.1,尝试重新安装了,没用,怀疑是 openssl 版本太老,于是从 1.0.x 升到了 1.1.x,还是没用,有一点比较奇怪,我尝试运行了以下命令
openssl s_client -showcerts -connect gems.ruby-china.com:443 -servername gems.ruby-china.com
在 openssl 没升级上来之前,会报一个证书过期的错误,然而升级到 1.1.1 之后,会出现下面的错误
...
Verify return code: 20 (unable to get local issuer certificate)
看起来像是我机器的证书链不全?但是如果指定 CAfile 是正确的
openssl s_client -showcerts -connect gems.ruby-china.com:443 -servername gems.ruby-china.com -CAfile /etc/pki/tls/certs/ca-bundle.crt
这样看起来是没问题的,总之为了解决一个错误,感觉越走越偏了,有人碰到过类似的问题么。