Herstellen einer Verbindung zu Google Cloud SQL mit SSL und Golang von Google App Engine
Herstellen einer Verbindung zu Google Cloud SQL über Golang und go-sql- Bei der Verwendung von SSL kann es beim Treiber zu Fehlern kommen. Ein spezifischer Fehler, der auftreten kann, ist:
x509: certificate is valid for projectName:instanceName, not projectName
Um dieses Problem zu beheben, ist es wichtig, zusätzlich zur Angabe der Projekt-ID:Instanz die ServerName-Eigenschaft festzulegen, wenn Sie eine benutzerdefinierte TLSConfig beim MySQL-Treiber registrieren -name innerhalb von sql.Open().
Hier ist ein Beispiel, das diesen Fix demonstriert:
<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>
Durch Anhängen von ?tls=nameOfYourCustomTLSConfig an die Verbindungszeichenfolge können Sie die benutzerdefinierte TLS-Konfiguration angeben verwendet werden. Dadurch wird sichergestellt, dass die Verbindung mit SSL korrekt aufgebaut wird.
Das obige ist der detaillierte Inhalt vonWie behebt man den Fehler „x509: Zertifikat ist gültig für ...' beim Herstellen einer Verbindung zu Cloud SQL mit SSL und Golang?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!