Google App Engine から SSL と Golang を使用して Google Cloud SQL に接続する
Golang と go-sql を使用して Google Cloud SQL に接続するSSL の使用時にドライバーでエラーが発生する可能性があります。発生する可能性のある具体的なエラーの 1 つは次のとおりです。
x509: certificate is valid for projectName:instanceName, not projectName
この問題を解決するには、カスタム TLSConfig を MySQL ドライバーに登録するときに、project-id:instance を指定することに加えて、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 中国語 Web サイトの他の関連記事を参照してください。