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

使用cloud_sql_proxy连接Google Cloud SQL遇x509证书过期/无效错误

解决Cloud SQL Proxy的x509证书过期/无效问题

嗨,我来帮你搞定这个头疼的证书问题!你本地MySQL客户端能正常连接,但Cloud SQL Proxy却报x509: certificate has expired or is not yet valid,大概率是时间同步、proxy版本或者证书缓存的问题,咱们一步步来排查解决:

  • 优先检查本地虚拟机的系统时间
    这是最常见的触发原因!X509证书对时间精度要求很高,如果本地系统时间和实际UTC时间偏差过大(比如差了几个小时甚至几天),就会出现“证书未生效”或“已过期”的错误。

    • 先运行命令查看当前UTC时间:date -u,手动对比一下真实的世界标准时间(比如搜“当前UTC时间”)。
    • 如果时间不对,立刻同步系统时间:
      • Ubuntu/Debian系统:sudo timedatectl set-ntp on
      • CentOS/RHEL系统:sudo systemctl start chronyd 或者 sudo ntpdate pool.ntp.org
    • 时间同步完成后,重启Cloud SQL Proxy再试。
  • 更新到最新版Cloud SQL Proxy
    旧版本的Proxy可能存在证书逻辑漏洞或者自带的根证书过期问题,直接换最新版试试:

    • 先停止当前运行的Proxy进程,删除旧的二进制文件。
    • 根据你的系统架构下载最新版:
      • Linux 64位:wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxy
    • 给文件添加执行权限:chmod +x cloud_sql_proxy
    • 用新的Proxy重新执行连接命令,比如:./cloud_sql_proxy -instances=q:a:q4=tcp:3306
  • 检查服务账号密钥是否过期
    如果你是通过服务账号JSON密钥文件运行Proxy的,得确认密钥有没有过期:

    • 打开你的密钥JSON文件,找到expiration字段,查看是否已过有效期。
    • 如果密钥过期,登录Google Cloud控制台,进入IAM -> 服务账号页面,找到对应的账号重新生成并下载新的密钥,替换旧文件后重启Proxy。
  • 强制Proxy重新获取证书
    Proxy会缓存证书文件,有时候旧缓存会导致问题,手动清理缓存让它重新拉取:

    • 停止Proxy进程,删除缓存目录:
      • Linux系统:rm -rf ~/.cloudsql/
      • Windows系统:手动删除%USERPROFILE%\.cloudsql\目录下的所有内容
    • 重新启动Proxy,它会自动从Google Cloud获取最新的有效证书。
  • 确认Cloud SQL实例状态与SSL配置

    • 登录Google Cloud控制台,检查你的Cloud SQL实例是否处于正常运行状态,有没有被暂停或正在维护。
    • 进入实例的「Connections」->「SSL」页面,确认SSL配置是否正常(比如是否允许非SSL连接,不过你本地MySQL能连,这一步大概率没问题,但还是排查下更稳妥)。

如果以上步骤都试过还是不行,你可以启动Proxy时加上-verbose参数打印详细日志:./cloud_sql_proxy -instances=q:a:q4=tcp:3306 -verbose,从日志里能看到证书获取的完整过程,方便进一步定位问题。

内容的提问来源于stack exchange,提问作者Mirror Mirage

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 08:51:10