如何重新轮换 AWS RDS 证书以实现 golang 1.15 兼容性

Ric*_*ton 5 ssl go amazon-web-services amazon-rds

我正在尝试解决此处描述的问题: https: //github.com/golang/go/issues/39568 和此处: https: //docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL- certificate-rotation.html,其中 AWS 要求客户重新轮换 RDS 证书 (rds-ca-2019) 以使其与 golang 1.15 兼容

如果您使用的 Go 版本 1.15 应用程序具有在 2020 年 7 月 28 日之前创建或更新为 rds-ca-2019 证书的数据库实例,则必须再次更新证书。使用 rds-ca-2019 作为 CA 证书标识符运行 AWS CLI 部分中显示的修改-db-instance 命令。在这种情况下,无法使用 AWS 管理控制台更新证书。如果您在 2020 年 7 月 28 日之后创建数据库实例或更新其证书,则无需执行任何操作。有关更多信息,请参阅 Go GitHub 问题 #39568。

需要明确的是,我的 RDS 服务器已经在使用rds-ca-2019,但我在 2020 年 7 月 28 日之前轮换了它们。当我使用 检查证书时openssl s_client -starttls mysql [hostname],我看到一个没有 SAN 的证书。

我在 cli 中发出此命令,但没有任何反应,没有创建挂起的维护,服务器没有重新启动,并且证书仍然是没有 SAN 的旧证书。

aws rds modify-db-instance --db-instance-identifier [db-ident] --ca-certificate-identifier rds-ca-2019 --apply-immediately --certificate-rotation-restart

--apply-immediately我已经尝试了带和不带和标志的所有排列--certificate-rotation-restart

我在这里做错了什么?

Ric*_*ton 0

这有效:

aws rds modify-db-instance --db-instance-identifier [db-ident] --ca-certificate-identifier rds-ca-2019 --apply-immediately

如果您在 RDS 控制台上坐了一分钟,发出命令后大约 10 秒就会开始重新启动。

当实例恢复时,它使用带有 SAN 的新证书,可以通过以下方式进行验证:

openssl s_client -starttls mysql [db-hostname] < /dev/null 2> /dev/null | openssl x509 -noout -text | grep "Subject Alternative Name"

我无法解释为什么在我发布问题时它对我不起作用,但我完全愿意说这更有可能是我的错而不是 AWS 的错。;)