如果我使用 SSL 连接对于 Google Cloud SQL 第二代 MySQL 服务器,该证书是自签名的,并且证书有效期似乎只有 1 年。在年底之前,我可以使用 刷新证书gcloud sql instances reset-ssl-config [INSTANCE_NAME]
。此时将生成一个新证书并立即在 MySQL 服务器上投入使用。
不幸的是,这将导致停机,因为我将部署多个不同的 MySQL 客户端,而这些客户端的--ssl-ca
配置必须在生成新服务器证书后立即更改。此外,文档表明所有客户端证书也会同时被撤销!
刷新服务器证书时,有没有什么方法可以避免 Google Cloud SQL MySQL 上的客户端停机?例如,是否可以生成新的服务器证书而不立即启用它,以便--ssl-ca
可以更新客户端,然后在客户端全部准备就绪后开始使用新证书?
为了比较,RDS 团队在一封信中描述,Amazon RDS 不对 MySQL 服务器使用自签名证书。相反,它使用证书(具有使用 验证的主机名--ssl-verify-server-cert
)和证书有效期为 5 年的证书颁发机构。在 CA 证书到期之前,Amazon 会发布一个证书颁发机构文件,其中包含旧 CA 证书和新 CA 证书(因为 mysql 客户端的--ssl-ca
文件可以包含多个受信任的 CA 证书)。一旦所有客户端都信任新的 CA 证书并且您已准备就绪,您就可以将 RDS MySQL 服务器的证书从旧 CA 签名的证书交换为新 CA 签名的证书,而无需任何停机时间。
答案1
目前,Cloud SQL 服务没有让客户端在不停机的情况下升级证书的方法。我记下了这件事,并做了一个向 Google 公共问题跟踪器提出功能请求以便将来在 Cloud SQL 中实现该功能。
没有方法可以预先获取用于更新证书的 CA 数据,以便客户端可以提前做好准备。