繁体   English   中英

2020年AWS RDS公有证书更新准备(Postgres)

[英]Preparing for renewal of AWS RDS public certificate in 2020 (Postgres)

我有一个与 Postgres 数据库的 Amazon rds-ca-2015-root证书到期有关的问题,该证书计划于 2020 年 3 月 5 日到期。我想准备我的 java 客户端软件组件,以便它们在服务器时的停机时间最短切换到新的 2020 证书。 在使用 SSL 对服务器进行身份验证时,客户端使用带有 RDS 证书的 jks 信任库。 我假设 2020 年证书将在 30 天左右之前提供,即 2020 年 2 月 5 日。

这是我认为我应该做的,我正在寻找一些确认这确实会按我的预期工作:

  1. 在到期前的某个时间,使用包含 2015 证书和 2020 证书的信任库文件向客户端推送软件更新。 客户端应该继续愉快地根据 2015 证书进行身份验证。 新证书具有不同的签名/指纹,不会匹配。 它应该被忽略。

  2. 在即将到期之前,修改 RDS 实例以使用 2020 证书。 需要重新启动服务器。 然后,客户端将匹配 2020 证书,忽略签名不再匹配的 2015 证书。 停机时间仅限于重新启动服务器。

  3. 稍后,使用删除 2015 证书的信任库向客户端推送新更新。

这是正确的方法吗? 是否有任何理由认为在 #1 中,java 客户端将尝试对 2020 证书进行身份验证但失败,因为它与相同的主题和颁发者匹配? 或者相反,在#3 中,他们尝试验证 2015 年证书但由于字段相同而失败?

我想以另一种方式提出问题,客户端(java或其他)是否可以持有两个用于服务器身份验证的公共证书,其中一个已过期或尚未有效,但两者都引用相同的主题和颁发者,甚至可能拥有如果亚马逊不轮换他们的密钥,则使用相同的公钥(尽管我认为最佳实践表明他们会这样做)。

是的,你说得对。 作为参考,我遇到了Amazon RDS 客户:更新您的 SSL 证书以确认该过程。 证书参考来自 2015 年,但过程仍然相同。

关于在客户端存储中具有相同主题的两个有效证书,以及客户端如何匹配:

验证是通过构建证书路径来完成的,通过链接证书的颁发者 DN(可分辨名称)来验证您信任的 CA 证书的主题 DN。

请参阅SSL 如何在信任库中匹配/找到证书?

由于 CA 不同,证书可以共存于同一个信任库中,并且会解析为正确的证书。

在升级 RDS 中的证书颁发机构到 rds-ca-2019 之前,在不中断连接的情况下,您可以在客户端升级证书。

如果您的 RDS 有 rds-ca-2015,您应该使用此https://s3.amazonaws.com/rds-downloads/rds-combined-ca-bundle.pem升级客户端密钥。

As per AWS document https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html It says rds-combined-ca-bundle.pem file has both certs intermediate and root.

一旦您的应用程序具有组合 ca 文件,那么您应该继续将您的 RDS 升级到证书颁发机构 rds-ca-2019。

通过这种方式,您可以将 RDS 中的证书颁发机构升级到 rds-ca-2019。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM