为什么 SSL 证书仅在特定日期有效?

信息安全 tls 证书 公钥基础设施 证书颁发机构
2021-08-23 06:05:32

每个 SSL 证书从特定日期开始有效,直至到期日。

那个“生效日期”有什么意义?为什么我们希望证书仅在特定日期之后才有效?

4个回答

从历史上看,证书有一个有效期的开始日期,主要是为了对称:它们有一个有效期的结束,所以最初的设计者发现,出于未指明的原因,包括一个有效期的开始日期也是合适的。

如今,这样的日期已经找到了一种用法,即过去的验证这就是您在契约几个月/几年后验证签名时所做的事情。这是一个复杂的游戏,带有时间戳并将自己投射到过去。然后,有效期开始日期起着重要作用(尽管很难在几段中解释)。

当然,过去的验证与 SSL 连接的上下文完全不同,但它们使用相同的证书格式 ( X.509 ),并且必须设置 start-of-validity 字段。通常的 CA 将有效期开始设置在发行日期几分钟或几小时。

如果 CA 有严格的政策,使得颁发的证书永远不会向前或向后追溯,那么:

在 NotBeforeDate 颁发的证书不会受到已知在 NotBeforeDate 之前已修复的漏洞的破坏 - 在漏洞期间不存在的证书不会受到该漏洞的破坏。

相反,如果发现存在新漏洞,则在发现新漏洞之前颁发的任何证书都可能被视为可疑。

换句话说,对于已修复的漏洞,NotBeforeDate 允许对修复日期之后颁发的证书授予信任。对于发现的漏洞,NotBeforeDate 允许撤销对在发现日期之前颁发的证书的信任。

除了其他有效答案;能够在以后进行验证是主要用例,提前由 CA 签发是一个很好的策略,因为他们收取的费用太高,而且作为客户,您希望优化有效期。误导性的答案就是说这不是有效的用途是事件响应。当违规发生时,替换证书的有效期是无关紧要的,因为替换证书在发生违规时实际上并不存在,因此它与违规无关,只有事后才具有相关性,使得 netBefore 有效期与上述几点相同,您正在通过不回溯替换证书来优化有效期。

我尚未涵盖的其他答案是 notBefore 有效期是在现有证书即将到期时保持网络服务器运行的绝佳机制。服务 2 个证书链是一个有效的场景,1 将是有效的,直到它不是,然后第二个链将是。这使您可以提前解决证书到期中断问题,并且不需要您专门进行服务器部署以更改证书并且您不需要对现有和替换的证书进行重大交叉(因为交叉是浪费钱)

编辑:几年前写得不好。请查看上面建议的答案以获得对问题的更准确回答。

可能有几个原因,

  • 检查客户和 CA 的合同/订阅
  • 在受到攻击的情况下,为了解决问题,找出攻击者是在安全连接之前还是之后劫持了数据可能很有用。