„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > 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?

Veröffentlicht am 17.11.2024
Durchsuche:205

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/")

Diese Methode hat sich jedoch 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.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3