Heim >Backend-Entwicklung >Golang >Wie behebe ich SSL-Zertifikatfehler in Go beim Herstellen einer Verbindung zu Google Cloud SQL?

Wie behebe ich SSL-Zertifikatfehler in Go beim Herstellen einer Verbindung zu Google Cloud SQL?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-23 18:14:41843Durchsuche

How to Resolve SSL Certificate Errors in Go When Connecting to Google Cloud SQL?

Fehlerbehebung bei Datenbankkonnektivität: Beheben von SSL-Problemen in Golang mit Google App Engine und Google Cloud SQL

Laut der Dokumentation von Google wird eine Datenbankverbindung zwischen Go und Google Cloud SQL hergestellt Die Verwendung des Go-SQL-Treibers und SSL sollte unkompliziert sein. Benutzer können jedoch auf einen verwirrenden x509-Zertifikatfehler stoßen.

Ursache und Lösung

Die Fehlermeldung deutet darauf hin, dass der Benutzer eine Verbindung mit SSL herstellt. Um dieses Problem zu beheben, stellen Sie sicher, dass die ServerName-Eigenschaft im RegisterTLSConfig-Aufruf festgelegt ist, der mit dem MySQL-Treiber durchgeführt wird. Diese Konfiguration muss in Verbindung mit der Angabe der Projekt-ID:Instanzname innerhalb der Funktion sql.Open() durchgeführt werden.

Implementierungsempfehlung

Um dieses Problem zu beheben, ändern Sie Ihre TLS-Konfiguration auf Fügen Sie eine benutzerdefinierte ServerName-Einstellung ein, wie unten gezeigt:

<code class="go">mysql.RegisterTLSConfig("custom", &tls.Config{
            RootCAs:      rootCertPool,
            Certificates: clientCert,
            ServerName:   "projectName:instanceName",
        })</code>

Anschließend fügen Sie die folgende Zeichenfolge an Ihre Datenbankverbindungszeichenfolge an:

<code class="go">?tls=nameOfYourCustomTLSConfig</code>

Zum Beispiel:

<code class="go">db, err := sql.Open("mysql", "user@cloudsql(project-id:instance-name)/dbname?tls=custom")</code>

Das obige ist der detaillierte Inhalt vonWie behebe ich SSL-Zertifikatfehler in Go beim Herstellen einer Verbindung zu Google Cloud SQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn