我们正在使用 mTLS 进行后端服务身份验证,根证书将于 2022 年到期。以下是所有证书的到期详细信息:
- 这根证书将在以下时间到期2022
- 这中间的证书将在2031
- 这叶子证书将在2023
我不知道为什么根证书被设置为比其他证书更早过期,如果可能的话,我想避免在几个月内更新所有证书。根据我们的测试,只要中间证书和叶证书仍然有效,根证书过期后一切仍可正常工作。我们进行了以下测试以验证:
- 我们在测试环境中更新了证书,并将根证书设置为一小时后过期
- 一小时后一切正常
- 我们对中级证书进行了另一项测试,使其在一小时内过期
- 一小时后,我们开始收到身份验证错误
有人能否确认我们的测试是否足以验证根证书过期不会导致问题?
感谢您提供的任何见解!
### 附加信息 ###
我们在内部服务之间使用 mTLS 身份验证:
- Hashicorp Consul、Nomad 和 Vault
- MongoDB
- 其他一些服务
在这些实例中,我们可以找到中间证书和叶证书,但找不到根证书。
如果我验证中间证书,我可以看到它的到期时间为 1 年,尽管根证书已经过期。
我使用 Terraform 在新环境中创建了 3 个 Consul 服务器,并测试了这些证书。测试证书已安装在每个实例上,并且根证书过期不会引起任何问题
答案1
符合 RFC 5280 的证书验证功能要求链中的所有证书(包括根证书)在验证时都必须处于有效期内。也就是说,在根证书过期后(2022 年),正确的证书验证功能将无法验证您的证书链。
证书有效期包含当前时间。
这适用于链中的每个证书。如果您发现叶证书已成功通过过期根证书的验证,则可执行以下操作之一:
- 有一个交叉证书将你重定向到另一个根
- 证书验证功能配置错误并忽略某些验证错误。