我有以下问题:我们使用带有客户端证书验证的 TLS 来识别服务的客户端。为此,我们创建了自己的自签名证书颁发机构,它只为这些客户端签署证书并验证其有效性。我们在我们的开发环境中复制了这个设置。
开发 CA 刚刚过期,因此无法在我们的开发环境中颁发新证书。我们在生产 CA 上还有很多时间,但我想知道是否有一个平滑的过程可以在不破坏现有证书的情况下从过期的 CA 证书迁移到新的未过期证书。
天真的解决方案是,生成一个新的 CA 证书并替换旧的。但是,我相信这会导致现有客户无法通过验证。
我做了一些谷歌搜索和阅读,我认为我需要做的是..
- 创建一个新的 CA 证书并将其用于签署新的客户端证书
- 创建某种“组合”证书,其中包括新 CA 证书和旧 CA 证书,并将其用于验证客户端(桥?链?)
第 2 点是我找不到详细文档的地方。我还有其他一般性问题:
- 是否可以将“组合”证书设置为既可用于颁发新证书又可用于验证新旧证书的方式?比如,是否可以指出“这个证书实际上是 2 个证书,而新的证书应该用于签署新客户端?” 这严格来说是一个实际问题 - 需要跟踪的文件更少。
- 我是否应该完全避免组合任何东西,而只在验证软件的信任池中使用两个 CA 证书?我想这又回到了第一个问题..
对含糊的语言感到抱歉,我故意避免使用特定的 x509 术语,因为我担心我会错误地使用它们并混淆问题。