Heim > Artikel > Backend-Entwicklung > Warum meldet Golang 1.9.2 unter Windows XP „x509: Zertifikat von unbekannter Stelle signiert', während Browser dies nicht tun?
Golang HTTP x509: Fehler bezüglich unbekannter Autorität für Zertifikate
In der jüngeren Vergangenheit sind Einzelpersonen beim Versuch, auf ihre Backend-Systeme zuzugreifen, auf Herausforderungen gestoßen Verwendung von Golang 1.9.2 unter Windows XP. Obwohl es auf moderneren Betriebssystemen wie Windows und Linux einwandfrei funktionierte, stießen Benutzer, die ihren Code unter Windows XP ausführten, auf den folgenden Fehler: „x509: Zertifikat von unbekannter Autorität signiert.“
Browserbasierte Tests mit Firefox ESR und Chromium-Browser ergaben, dass diese Browser beim Zugriff auf dieselbe URL aus derselben Windows XP-Umgebung keine zertifikatbezogenen Probleme verursachten. Insbesondere bleibt das betroffene SSL-Zertifikat gültig und wird von einer vertrauenswürdigen Zertifizierungsstelle signiert.
Einige Personen haben versucht, dieses Problem zu lösen, indem sie die TLS-Validierung mithilfe des InsecureSkipVerify-Parameters überschrieben haben:
import ("net/http"; "crypto/tls") tr := &http.Transport{ TLSClientConfig: &tls.Config{InsecureSkipVerify: true}, } client := &http.Client{Transport: tr} resp, err := client.Get("https://someurl:443/")
Allerdings Diese Methode hat sich als unwirksam erwiesen. Es ist wichtig zu beachten, dass das Überschreiben der TLS-Validierung mit Vorsicht angegangen werden sollte, da die Anwendung dadurch potenziellen Bedrohungen wie Man-in-the-Middle-Angriffen ausgesetzt wird.
Wenn bei Ihnen das gleiche Problem auftritt, stellen Sie sicher, dass Sie den InsecureSkipVerify-Parameter richtig eingestellt haben. Möglicherweise haben Sie es versehentlich auf „InsecureSkyVerify“ gesetzt. Hier ist der richtige Codeausschnitt:
// NewAPIClient - creates a new API client func NewAPIClient() Client { c := &APIClient{} tr := &http.Transport{ TLSClientConfig: &tls.Config{InsecureSkipVerify: true}, } c.client = &http.Client{Transport: tr} return c }
Denken Sie daran, dass das Überschreiben der TLS-Validierung nur zu Testzwecken oder in Verbindung mit strengen benutzerdefinierten Überprüfungsmaßnahmen in Betracht gezogen werden sollte.
Das obige ist der detaillierte Inhalt vonWarum meldet Golang 1.9.2 unter Windows XP „x509: Zertifikat von unbekannter Stelle signiert', während Browser dies nicht tun?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!