换句话说,例如,CA可以颁发一个两千年到期的证书吗?
如果您愿意的话,您可以创build一个自签名证书,该证书在9999-12-31T23:59:59Z过期,这是用当前规则编码的最大可能date(Y10k问题)。
那么这个证书就可以发出其他的证书,这个证书在那个时候也过期了
但是,自签名证书不会被操作系统或浏览器所采用, 因为他们都有反对的规则。
像Microsoft可信根证书一样:程序要求规则3:根证书必须在申请分发date后不超过25年后过期。
令人惊讶的是,在CA /浏览器规则,Mozilla规则或Apple规则下,似乎没有关于根权限最大有效性的简明声明。 这可能意味着他们只是背负微软规则。
如果一个CA的根证书有一个适当的长期到期,他们可以发放相当长时间的证书。 即使孩子的证书有效期过长,CA颁发的证书的有效期也不会超过根证书。
您作为CA可以在X.509证书中放置任何最佳date。 事实上,你甚至可以跳过这个约束。
问题是哪个客户会接受他们。 这取决于软件包,软件版本,客户端configuration以及可能来自诸如时间戳,透明度日志,CA根和中间体的有效期,实际种类(公共或自定义)等的上下文的其他事物。密钥长度,CRL新鲜度和OCSP内容等。 所以如果不看这一切,就很难知道。
然而,CA浏览器论坛的基准要求只要求您提供39个月的最大有效期。 依赖证书的兼容的Web浏览器最有可能强制执行此操作,并在此date后停止信任(或永远不相信它们):
在CA-Browser-Forum-BR 1.4.2的 6.3.2节中:
于二零一五年四月一日后发出之认购人证书必须有效期不得超过39个月。
它可能是这样的情况,它不强制执行此自定义根。 如果您为官方信任的证书执行操作,您当然会使用您的信任状态。
从理论上讲,CA可以制作一个任意长的证书吗?
不 ,理论认为证书颁发机构(CA)不能颁发任意长的有效证书。 问题是我们不能确定签名方法是不能被破坏的。
在实践中,是的,你可以创build一个声称在2000年到期的证书。 但是,如果在那之前它的签名方法被打破了,那么任何人都可以接受它,这是愚蠢的。 此外,证书格式可能会过时。