通过openssl命令获得网站的根证书

通过openssl命令获得网站的根证书,ssl,certificate,authorization,Ssl,Certificate,Authorization,我正在尝试为我的项目获取各种网站的根证书,但我不确定使用此命令返回的证书是否包含根证书 openssl s_client -showcerts -connect google.com:443 我正在寻找答案,突然看到一篇帖子,其中使用wget从godaddy的证书库获取根证书 wget https://certs.godaddy.com/repository/gd_bundle.crt -O ~/.cert/mail.nixcraft.net/gd.pem 如何查找每个网站的存储库?在TLS

我正在尝试为我的项目获取各种网站的根证书,但我不确定使用此命令返回的证书是否包含根证书

openssl s_client -showcerts -connect google.com:443
我正在寻找答案,突然看到一篇帖子,其中使用wget从godaddy的证书库获取根证书

wget https://certs.godaddy.com/repository/gd_bundle.crt -O ~/.cert/mail.nixcraft.net/gd.pem

如何查找每个网站的存储库?

在TLS连接(https)期间,服务器必须包括认证链该链可能包括CA根证书,但它是可选的,因此您不能保证它可用。TLS协议期望客户端在其信任库中拥有证书以验证信任


您可以通过编程方式下载每个站点的服务器证书,但需要查找根CA证书。正如你所看到的,godaddy在其网站上发布了它们。在许多情况下,证书本身包含一个下载根证书的引用

我想从特定网站获取证书,然后用它来验证列表中的其他网站,我可以在不获取根证书的情况下进行验证吗?例如,如果一个网站有一个由3个证书组成的链
0-root
1-intermediate
,和
2-leaf
,服务器将向您提供
2
1
(按此顺序)。您可以验证
2
是否由
1
签名。如果您有root用户,则验证
1
是否由
0
签名。这就是你想做的吗?@NikhilJain,我的答案清楚吗?您需要进一步的澄清吗?实际上,我想验证列表中使用相同根证书的网站。。为此,我需要根证书如果您没有根证书的密钥存储,您可以比较链中最后一个证书的颁发者名称。颁发者名称必须与CA根证书的主题匹配