因此,我已经生成了一个 rootCA,并为 *.a.com 签署了一个证书,如何在 Firefox/Chrome 中信任生成的证书,而不直接信任 CA?
请注意,在这种情况下添加例外(一次)是不够的,因为存在多个域。
答案1
有两种可能的方法:
将证书明确添加到浏览器证书管理器。由于 Chrome 和 Firefox 使用 NSS 作为其 SSL 库,因此可以使用以下命令(对于 Chrome)完成此操作:
certutil -d sql:$HOME/.pki/nssdb -A -t "P,," -n SomeCertificateName -i /path/to/certificate
- 颁发受扩展名限制的子CA证书
nameConstraint
,使该子CA只能颁发带a.com
后缀的证书。现在只信任这个子CA。本文解释了这种方法。
答案2
由于证书不是由受信任的 CA 颁发的,因此对于通配符证书适用的每个域,您都会收到错误。Firefox 以域而不是证书作为密钥来存储证书例外,因此它会要求您为每个域设置例外(即使使用通配符证书也是如此)。
如果您不想直接信任 CA,您可以要求 CA 所有者为您创建中间 CA 证书,您可以使用该证书颁发证书。然后,您可以在浏览器中添加中间 CA。(或者您可以创建一个新的 CA)