Heim  >  Artikel  >  Backend-Entwicklung  >  Warum schlägt meine Golang-HTTP-Anfrage mit „x509: von unbekannter Stelle signiertes Zertifikat' unter Windows XP fehl?

Warum schlägt meine Golang-HTTP-Anfrage mit „x509: von unbekannter Stelle signiertes Zertifikat' unter Windows XP fehl?

Barbara Streisand
Barbara StreisandOriginal
2024-11-11 20:03:03271Durchsuche

Why Does My Golang HTTP Request Fail with

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!

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