使用 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中文网其他相关文章!