You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Cloud SQL SSL/TLS配置及verify-full、verify-ca模式相关技术咨询

Cloud SQL SSL/TLS配置及verify-full、verify-ca模式相关技术咨询

嘿,我来帮你拆解Cloud SQL里SSL/TLS配置的这几个疑问,结合官方文档和PostgreSQL的底层逻辑来给你讲明白:

问题(1) 如何用verify-full模式连接Cloud SQL?

要成功使用verify-full,核心是你必须用**Cloud SQL实例的完全限定域名(FQDN)**来发起连接,而不是直接用IP地址或者自定义的hostname。

首先,先确认你的实例FQDN,格式一般是:[你的实例名].[地区].cloudsql.google.com(比如my-db-us-central1.cloudsql.google.com),你可以在Cloud SQL控制台的实例详情页找到这个地址。

然后,连接时需要满足这几个条件:

  • 把sslmode明确设为verify-full
  • 确保客户端使用的SSL根证书是Cloud SQL提供的实例专属CA证书
  • 连接的hostname严格匹配服务器证书里的Common Name(CN)——也就是上面的FQDN

举个psql命令的例子:

psql "host=my-db-us-central1.cloudsql.google.com port=5432 dbname=mydb user=myuser sslmode=verify-full sslrootcert=server-ca.pem"

如果还是失败,你可以用openssl命令检查服务器证书的CN是否和你用的FQDN一致:

openssl x509 -in server-ca.pem -text -noout | grep "Subject:"

输出里的CN=后面的内容就是证书的域名,必须和你连接时用的host完全一致。

问题(2) 如何理解“CA是实例专属时,verify-ca足够”?

先结合PostgreSQL官方文档的逻辑对比来看:

当使用公共CA(比如Let's Encrypt这类)时,verify-ca只是验证服务器证书是由可信CA签发的,但没法防止中间人攻击——比如有人用公共CA申请了一个对应其他域名的证书,如果你用verify-ca,客户端会信任这个证书(因为是可信CA签的),但实际上你连接的是假服务器。这时候必须用verify-full,确保证书的CN和你要连接的hostname一致,才能避免这种情况。

而Cloud SQL的CA是实例专属的私有CA,不是公共CA:

  • 这个CA的私钥只有Google持有,而且只用来给你的特定Cloud SQL实例签发证书
  • 外部人员根本拿不到这个CA的私钥,没法伪造出能通过verify-ca验证的假证书

所以在这种场景下,只要客户端验证了服务器证书是由这个专属CA签发的(也就是verify-ca通过),就100%能确定连接的是真实的你的Cloud SQL实例——因为没人能伪造合法的证书。这时候证书里的CN是什么其实不重要,因为能通过验证的证书必然是合法的。

简单总结:公共CA场景下,verify-ca防不住中间人;但实例专属私有CA场景下,verify-ca已经能确保连接的是真实服务器,不需要额外验证CN。

问题(3) 本地/实例专属CA下,verify-ca是否等同于verify-full?

从安全防护效果上来说,是的,在Cloud SQL这种实例专属CA的场景下,verify-ca已经提供了和verify-full完全一样的安全保障:

  • 防窃听:SSL/TLS会加密所有传输的数据,第三方无法监听获取明文
  • 防MITM(中间人攻击):中间人没法用你的实例专属CA签发合法的服务器证书,客户端会直接拒绝连接

唯一的技术差异是verify-full多了一层hostname与证书CN的匹配验证,但在Cloud SQL的场景下,这个验证是多余的——因为能通过verify-ca的证书,其CN必然是你的实例FQDN,而只要你用FQDN连接,verify-full也会通过,但verify-ca已经足够安全,不需要多做这一步验证。

备注:内容来源于stack exchange,提问作者x-yuri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 14:59:36