如何通过SSL安全连接Google Cloud SQL?证书IP匹配问题求助
解决Google Cloud SQL SSL连接证书验证失败问题
核心原因
Cloud SQL生成的SSL证书的备用名称(SAN)仅包含实例的官方完全限定域名(FQDN),不包含公网IP地址。直接用IP连接时,证书验证会因主机名不匹配失败,必须改用实例的FQDN连接。
解决步骤
获取实例的FQDN
登录GCP控制台,进入Cloud SQL实例详情页,在「连接」标签的「公网IP」区域,找到类似your-instance-name.your-region.sql.goog的域名(例如my-db-instance.us-central1.sql.goog),这就是需要使用的主机名。修改代码连接配置
将代码中的host参数替换为上述FQDN,并移除rejectUnauthorized: false(默认值为true,会自动验证证书):
return mysql.createPool({ host: 'your-instance-name.your-region.sql.goog', // 替换为你的实例FQDN port: 3306, user: db_user, password: db_password, ssl: { key: clientKey, cert: clientCert, ca: serverCa, }, });
额外说明
如果你的后端部署在GCP内部服务(如Cloud Run、GKE、GCE),推荐使用Cloud SQL Auth Proxy或私有IP连接,能进一步提升安全性且无需手动管理SSL证书;若使用公网连接,务必坚持用FQDN+SSL证书验证的方式,避免关闭证书校验。
内容的提问来源于stack exchange,提问作者Terence Sweeney
相关产品推荐
相关产品推荐

