首页 >后端开发 >Golang >如何解决 Google Cloud SQL 与 Golang 的 SSL 连接问题?

如何解决 Google Cloud SQL 与 Golang 的 SSL 连接问题?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-10-24 05:37:30897浏览

How to Resolve SSL Connection Issues for Google Cloud SQL with Golang?

使用 Golang 从 Google App Engine 排查与 Google Cloud SQL 的 SSL 连接问题

尝试从 Google App 建立与 Google Cloud SQL 的连接时使用 go-sql-driver 和 SSL 的引擎,开发人员经常会遇到“certificate is valid for projectName:instanceName, not projectName”错误。当使用 mysql 驱动程序注册自定义 TLSConfig 时未显式设置 ServerName 属性时,就会出现此问题。

要解决此问题,请确保在代码中包含以下步骤:

  1. 使用所需的证书和密钥注册 TLSConfig,将 ServerName 设置为您的项目和实例名称:
<code class="go">mysql.RegisterTLSConfig("custom", &tls.Config{
    RootCAs:      rootCertPool,
    Certificates: clientCert,
    ServerName:   "projectName:instanceName", // <-- Added ServerName property
})</code>
  1. 将“?tls=nameOfYourCustomTLSConfig”附加到您的数据库连接字符串:
<code class="go">db, err := sql.Open("mysql", "user@cloudsql(project-id:instance-name)/dbname?tls=custom")</code>

通过实施这些调整,您将使用 Golang 成功建立从 Google App Engine 到 Cloud SQL 实例的 SSL 连接。

以上是如何解决 Google Cloud SQL 与 Golang 的 SSL 连接问题?的详细内容。更多信息请关注PHP中文网其他相关文章!

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