Heim > Artikel > Backend-Entwicklung > Warum schlägt meine Golang-HTTP-Anfrage mit „x509: von unbekannter Stelle signiertes Zertifikat' unter Windows XP fehl?
Zertifikatvalidierungsfehler in Windows XP für Golang HTTP x509
Problem:
Beim Ausführen Bei einer Client-App mit Golang 1.9.2 unter Windows XP tritt bei HTTP-GET- und POST-Anfragen der Fehler „x509: Zertifikat von unbekannter Stelle signiert“ auf, obwohl das Zertifikat gültig und von einer vertrauenswürdigen Stelle signiert ist.
Hintergrund:
Dieser Fehler tritt auf, wenn der Client die Zertifikatskette des Servers nicht überprüfen kann, weil die für die Validierung erforderlichen Zwischenzertifikate nicht im Zertifikatspeicher des Hostsystems installiert sind.
Lösungsversuch:
Um das Problem zu beheben, hat der Benutzer den folgenden Code basierend auf Ratschlägen aus anderen Quellen implementiert:
tr := &http.Transport{ TLSClientConfig: &tls.Config{InsecureSkyVerify: true}, }
Diese Lösung ist jedoch falsch , da der Feldname „InsecureSkipVerify“ statt „InsecureSkyVerify“ lautet.
Richtige Lösung:
Die korrekte Implementierung sollte sein:
tr := &http.Transport{ TLSClientConfig: &tls.Config{InsecureSkipVerify: true}, }
Warnung:
Bitte seien Sie vorsichtig, wenn Sie „InsecureSkipVerify“ verwenden, da dadurch die Validierung von Serverzertifikaten und Hostnamenprüfungen deaktiviert werden. Dies kann den Client Sicherheitsrisiken wie Man-in-the-Middle-Angriffen aussetzen. Für eine sichere Verbindung wird empfohlen, eine benutzerdefinierte Überprüfung oder „VerifyConnection“ oder „VerifyPeerCertificate“ zu verwenden.
Das obige ist der detaillierte Inhalt vonWarum schlägt meine Golang-HTTP-Anfrage mit „x509: von unbekannter Stelle signiertes Zertifikat' unter Windows XP fehl?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!