从AWS EC2访问阿里云证书站点时出现SSL证书验证错误
解决AWS EC2/Amazon Linux 2中阿里云托管网站SSL证书验证失败问题
问题根源
你之前的操作只抓取了服务器叶子证书,但SSL证书验证需要完整的信任链(叶子证书 → 中间CA证书 → 根CA证书),单独的叶子证书无法通过系统信任校验,这就是openssl verify和curl --cacert都失败的核心原因。另外Amazon Linux 2默认的根证书包可能缺少阿里云证书对应的根CA,或者版本过旧导致无法识别。
分步解决方案
抓取完整的证书链
用openssl s_client加上-showcerts参数,一次性导出服务器返回的所有证书(包括叶子证书、中间CA证书):openssl s_client -connect solarsendpro.intelbras.com.br:443 -showcerts </dev/null 2>/dev/null | sed -n '/-----BEGIN CERTIFICATE-----/,/-----END CERTIFICATE-----/p' > full_chain.pem更新系统根证书包
先升级Amazon Linux 2自带的根证书,确保包含最新的信任CA:sudo yum update ca-certificates -y验证完整证书链
使用系统根证书验证导出的完整证书链:openssl verify -CAfile /etc/pki/tls/certs/ca-bundle.crt full_chain.pem如果验证仍失败,可使用Mozilla官方维护的最新根证书包(自行获取后保存为
cacert.pem)进行验证:openssl verify -CAfile cacert.pem full_chain.pem用curl正常访问
验证通过后,用系统根证书访问目标网站:curl --cacert /etc/pki/tls/certs/ca-bundle.crt --capath /etc/pki/tls/certs https://solarsendpro.intelbras.com.br -v若使用Mozilla证书包,则替换为:
curl --cacert cacert.pem https://solarsendpro.intelbras.com.br -v
长期解决方法
如果需要让所有系统工具默认信任该证书链,可将完整证书链追加到系统根证书bundle中:
sudo cat full_chain.pem >> /etc/pki/tls/certs/ca-bundle.crt
内容的提问来源于stack exchange,提问作者Julio Melo
相关产品推荐
相关产品推荐

