使用SSL 和Golang 從Google App Engine 連接到Google Cloud SQL
使用Golang 和go-sql 連接到Google SQL-使用SSL 時驅動程式可能會遇到錯誤。可能出現的一個具體錯誤是:
x509: certificate is valid for projectName:instanceName, not projectName
要解決此問題,除了指定project-id:instance 之外,在使用MySQL 驅動程式註冊自訂TLSConfig 時設定ServerName 屬性也至關重要- name inside sql.Open().
以下範例示範了此修正:
<code class="go">import "database/sql" import _ "github.com/go-sql-driver/mysql" // Create a custom TLS configuration. tlsConfig := &tls.Config{ RootCAs: rootCertPool, Certificates: clientCert, ServerName: "projectName:instanceName", } // Register the TLS configuration with the MySQL driver. mysql.RegisterTLSConfig("custom", tlsConfig) // Establish the database connection with SSL enabled. db, err := sql.Open("mysql", "user@cloudsql(project-id:instance-name)/dbname?tls=custom")</code>
透過將?tls=nameOfYourCustomTLSConfig 附加到連接字串,您可以指定自訂TLS 配置被設定使用。這可確保使用 SSL 正確建立連線。
以上是如何修復使用 SSL 和 Golang 連線到 Cloud SQL 時出現的「x509:憑證對...有效」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!