在 CentOS 7 上验证是否能访问使用 DigiCert Global Root G2 根证书签发的网站(如 https://www.digicert.com/),可以通过以下步骤进行验证。这主要涉及检查系统是否信任该根证书、能否成功建立 TLS 连接。


✅ 步骤 1:确认系统时间正确

TLS 证书验证依赖于系统时间。若时间偏差过大,会导致验证失败。

date

如果时间不正确,请同步时间:

sudo yum install -y ntp
sudo ntpdate pool.ntp.org
# 或使用 chrony(CentOS 7 默认可能用 chrony)
sudo chronyc sources -v

✅ 步骤 2:使用 curl 测试 HTTPS 访问

curl -I https://www.digicert.com/
  • 如果返回 HTTP 状态码(如 200 OK301/302),说明访问成功,且证书链被系统信任。
  • 如果出现类似 SSL certificate problem: unable to get local issuer certificate 错误,说明系统缺少根证书或中间证书。
💡 curl 在 CentOS 7 中默认使用系统的 CA 证书包(由 ca-certificates 软件包提供)。

✅ 步骤 3:确认 DigiCert Global Root G2 是否在系统信任库中

DigiCert Global Root G2 的指纹(SHA1)为:

CB3CCB256E9F84510C9A2E624E87122DBB474DF0

查看系统是否包含该根证书:

awk -v cmd='openssl x509 -noout -subject -fingerprint -sha1' '
    /BEGIN CERT/,/END CERT/{cert=cert$0"\n";next}
    /END CERT/{print cmd | cert; close(cmd); cert=""}
' < /etc/ssl/certs/ca-bundle.crt | grep -A1 "DigiCert Global Root G2"

或者直接搜索指纹:

openssl x509 -in <(openssl s_client -connect www.digicert.com:443 -servername www.digicert.com 2>/dev/null | sed -n '/-----BEGIN CERTIFICATE-----/,/-----END CERTIFICATE-----/p') -noout -fingerprint -sha1

但这只是服务器证书,不是根证书。更可靠的方式是检查本地 CA 包是否包含 DigiCert G2。


✅ 步骤 4:更新 CA 证书包(确保最新)

DigiCert Global Root G2 自 2017 年起被主流系统信任。但老旧的 CentOS 7 可能未包含(取决于 ca-certificates 版本)。

更新 CA 证书:

sudo yum update ca-certificates
⚠️ 注意:某些非常老的 CentOS 7 镜像(如 7.0~7.4)可能默认不包含 DigiCert G2。建议升级到 CentOS 7.9 并保持 ca-certificates 最新。

✅ 步骤 5:使用 openssl 手动验证 TLS 握手

echo | openssl s_client -connect www.digicert.com:443 -servername www.digicert.com 2>/dev/null | grep "Verify return code"
  • 如果输出为 Verify return code: 0 (ok),表示验证成功。
  • 如果是 21 或其他非零值,说明证书链验证失败。

🔍 补充:DigiCert Global Root G2 是否被 CentOS 7 支持?

  • 是的,只要 ca-certificates 版本 ≥ 2015.2.6(实际在 CentOS 7.6+ 中已包含)。
  • 可通过以下命令查看版本:
rpm -q ca-certificates

典型输出:ca-certificates-2022.2.54-72.el7_9.noarch(说明已更新)


✅ 总结:快速验证命令

# 1. 更新证书(推荐)
sudo yum update -y ca-certificates

# 2. 测试访问
curl -sI https://www.digicert.com/ | head -n1

# 3. 验证 TLS 证书链
echo | openssl s_client -connect www.digicert.com:443 -servername www.digicert.com 2>/dev/null | grep "Verify return code"

如果以上都正常,则说明你的 CentOS 7 系统可以正常访问使用 DigiCert Global Root G2 签发的网站。

如仍有问题,请提供具体错误信息。