理论上,CA 是否可以颁发有效期任意长的证书?

理论上,CA 是否可以颁发有效期任意长的证书?

换句话说,CA 是否可以颁发有效期为 2 千年的证书?

答案1

如果愿意的话,您可以创建一个自签名证书,其有效期为9999-12-31T23:59:59Z,这是当前规则 (Y10k 问题) 可以编码的最大可能日期。

该证书随后可以颁发其他证书,但这些证书也将同时过期。

但是,自签名证书不会被操作系统或浏览器采用;因为它们都有针对它的规则。

Microsoft 受信任根证书:程序要求规则3:根证书的有效期必须在申请分发之日起25年内。

令人惊讶的是,CA/Browser 规则、Mozilla 规则或 Apple 规则似乎没有对根权限的最大有效性做出简明声明。这可能意味着他们只是借用了 Microsoft 规则。

答案2

如果 CA 拥有有效期足够长的根证书,他们就可以颁发有效期同样长的证书。即使子证书的有效期更长,CA 颁发的证书的有效期也不会长于根证书。

答案3

作为 CA,您可以在 X.509 证书中输入任意最佳使用日期。事实上,您甚至可以跳过该限制。

问题是哪个客户端会接受它们。这取决于软件包、软件版本、客户端配置,以及可能来自上下文的其他内容,例如时间戳、透明日志、CA 根证书和中间证书的有效期、CA 根证书的实际类型(公共或自定义)、密钥长度、CRL 新鲜度和 OCSP 内容等。因此,如果不查看所有这些内容,很难知道。

但是 CA 浏览器论坛的基本要求是只给出最长 39 个月的有效期。依赖证书的兼容 Web 浏览器很可能会强制执行此要求,并在此日期之后停止信任(或永远不信任它们):

CA-浏览器-论坛-BR 1.4.2

2015 年 4 月 1 日之后颁发的订户证书的有效期不得超过 39 个月。

可能的情况是它不会对自定义根强制执行此操作。如果您对官方信任的证书执行此操作,那么您肯定会使用您的信任状态。

答案4

理论上,CA 是否可以颁发有效期任意长的证书?

理论上,证书颁发机构 (CA) 不能颁发有效期任意长的证书。问题是我们无法确保签名方法不会被破解。

实际上,是的,您可以创建一个声称在 2000 年内过期的证书。但是,如果其签名方法在此时间点之前被破坏,那么任何人接受它都是愚蠢的。此外,证书格式可能会过时。

相关内容