Cloud SQL与Cloud SQL Proxy Pod连接遇X509证书错误求助
解决Cloud SQL Proxy证书不匹配问题
问题原因
Cloud SQL实例的实例连接名与内部SSL证书绑定的FQDN不匹配,通常是Proxy连接时使用了错误的实例标识,或是IAM认证的Proxy配置有误。当采用IAM身份认证时,Proxy会自动获取实例SSL证书,但如果实例连接名填写错误,就会触发证书域名不匹配的提示。你看到的长ID开头的域名是Cloud SQL实例的内部自动生成FQDN,正常情况下Proxy会自动映射实例名到该FQDN,配置错误时才会出现不匹配。
解决步骤
- 确认实例连接名正确性:在Cloud Console的SQL实例详情页核对实例连接名,确保和你使用的
esonika:europe-west9:mysql-wordpress-instance完全一致,无拼写、大小写或区域名错误。 - 检查Proxy启动配置:
- 本地运行Proxy时,确保命令中的实例连接名无误:
./cloud-sql-proxy esonika:europe-west9:mysql-wordpress-instance --credentials-file=./service-account-key.json - Kubernetes部署场景下,检查Deployment的
args字段:args: - "-instances=esonika:europe-west9:mysql-wordpress-instance=tcp:3306"
- 本地运行Proxy时,确保命令中的实例连接名无误:
- 验证IAM服务账号权限:确认
cloudsql-proxy@esonika.iam.gserviceaccount.com拥有Cloud SQL Client角色(roles/cloudsql.client),该权限允许Proxy获取实例SSL证书并建立连接,缺失则直接添加。 - 强制刷新证书缓存:
- 本地运行:关闭Proxy后删除
~/.cloudsql目录下的缓存文件,重新启动Proxy。 - Kubernetes环境:执行
kubectl rollout restart deployment <proxy-deployment-name>重启Proxy Pod,触发证书重新拉取。
- 本地运行:关闭Proxy后删除
- 检查WordPress数据库配置:确保
wp-config.php中数据库主机填写为Proxy监听地址(如127.0.0.1:3306),无需使用实例名作为主机名,Proxy会自动处理实例名到内部FQDN的映射。
内容的提问来源于stack exchange,提问作者Esin Akdeniz
相关产品推荐
相关产品推荐

