首页  >  文章  >  后端开发  >  如何解决 Go 连接到 Google Cloud SQL 时出现 SSL 证书错误?

如何解决 Go 连接到 Google Cloud SQL 时出现 SSL 证书错误?

Patricia Arquette
Patricia Arquette原创
2024-10-23 18:14:41763浏览

How to Resolve SSL Certificate Errors in Go When Connecting to Google Cloud SQL?

数据库连接故障排除:使用 Google App Engine 和 Google Cloud SQL 解决 Golang 中的 SSL 问题

根据 Google 文档,在 Go 和 Google Cloud SQL 之间建立数据库连接使用 go-sql-driver 和 SSL 应该很简单。然而,用户可能会遇到令人困惑的 x509 证书错误。

根本原因和解决方案

错误消息表明用户正在使用 SSL 连接。要纠正此问题,请确保在使用 mysql 驱动程序进行的 RegisterTLSConfig 调用中设置 ServerName 属性。此配置必须与在 sql.Open() 函数中指定 project-id:instance-name 一起执行。

实施建议

要解决此问题,请将您的 TLS 配置修改为包括自定义 ServerName 设置,如下所示:

<code class="go">mysql.RegisterTLSConfig("custom", &tls.Config{
            RootCAs:      rootCertPool,
            Certificates: clientCert,
            ServerName:   "projectName:instanceName",
        })</code>

随后,将以下字符串附加到您的数据库连接字符串:

<code class="go">?tls=nameOfYourCustomTLSConfig</code>

例如:

<code class="go">db, err := sql.Open("mysql", "user@cloudsql(project-id:instance-name)/dbname?tls=custom")</code>

以上是如何解决 Go 连接到 Google Cloud SQL 时出现 SSL 证书错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn