如何使用 openssl 检查提供商网站上的中间 CA 证书和根 CA 证书的下载 URL 是什么?
我的意思是,如果站点证书来自 Rapidssl,如何使用 openssl 找到 CA 的路径,可以在以下位置下载: RapidSSL 中级和根 CA 证书 |快速SSL
答案1
不能保证这是可能的。
从中间证书中,您总能找到颁发者的身份,并且可选地授权密钥标识符(基本上是上级CA证书的序列号)和/或授权信息访问扩展可以不可以包含指向根证书的 URL。
同样,站点证书将始终包含中间 CA(作为颁发者)的身份以及可选扩展可能包括中间 CA 证书的序列号和 URL,但这并不能严格保证。
您可以使用以下 openssl 命令从证书中获取所有“有趣”的信息:
openssl x509 -noout -text -certopt no_pubkey,no_sigdump,no_header,ext_parse -nameopt multiline,show_type -in <certificate filename>
当然,这是一个相当长且复杂的命令,您可能想为其创建一个别名。在许多情况下,更简单的版本足以帮助学习和记住:
openssl x509 -noout -text -in <certificate filename>
此命令的输出包括一些通常无用的十六进制转储,并且它可能不会以非常有用的方式呈现新的或未知的证书扩展,但对于大多数用途来说它已经足够好了。
以另一种方式追踪链条则更加困难。由于根证书的寿命通常比中间证书长得多,因此在创建根 CA 证书时不一定知道中间证书的序列号和/或下载 URL。
无论如何,在成功检查证书的信任链之前,您不应该信任随机站点的证书中的信息。作为一项便利功能,该站点可能会为您提供(所谓的)中间 CA 证书,但为了真正验证这一点,根证书必须已位于您自己的受信任根证书存储中。
事实上,如果您无法从站点或中间证书自动检测未知 CA 的根 CA 证书 URL,您可能会更安全:您必须通过 google 搜索该 CA,并且如果存在/曾经有如果该 CA 名称正在使用伪造的 CA 证书,您将有机会看到有关它的新闻文章。
然后,您将有机会更好地查看证书和 CA 本身的详细信息,并评估该 CA 是否足够值得信赖。这本质上就是原因安装新的根 CA 证书时,应始终有人参与其中。