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?

Warum meldet Golang 1.9.2 unter Windows XP „x509: Zertifikat von unbekannter Stelle signiert', während Browser dies nicht tun?

DDD
DDDOriginal
2024-11-12 15:52:02615Durchsuche

Why Does Golang 1.9.2 on Windows XP Report

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!

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