首页  >  文章  >  后端开发  >  使用 Go 连接 Google Cloud SQL 时如何解决 SSL 连接错误?

使用 Go 连接 Google Cloud SQL 时如何解决 SSL 连接错误?

DDD
DDD原创
2024-10-24 03:37:01727浏览

How to Resolve SSL Connection Error When Connecting to Google Cloud SQL with Go?

使用 SSL 与 Go 连接到 Google Cloud SQL

问题:

尝试时使用 Go 和 go-sql-driver 从 Google App Engine 连接到 Google Cloud SQL 时,出现 x509 证书错误,并显示消息:

“x509: 证书对项目名称有效:实例名称,而不是项目名称”

答案:

此错误通常表示使用 SSL 连接到 Cloud SQL 时需要额外配置。虽然应在 sql.Open() 连接字符串中指定project-id:instance-name,但在使用 mysql 驱动程序注册自定义 TLSConfig 时还需要设置 ServerName 属性。

要解决问题,请确保 TLS 设置在对 RegisterTLSConfig 的调用中包含 ServerName:

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

随后,将 ?tls=nameOfYourCustomTLSConfig 附加到连接字符串:

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

按照以下步骤操作,您可以使用 SSL 与 Google Cloud SQL 建立安全连接。

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

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