"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Pourquoi Golang 1.9.2 sur Windows XP signale-t-il « x509 : certificat signé par une autorité inconnue » alors que les navigateurs ne le font pas ?

Pourquoi Golang 1.9.2 sur Windows XP signale-t-il « x509 : certificat signé par une autorité inconnue » alors que les navigateurs ne le font pas ?

Publié le 2024-11-17
Parcourir:499

Why Does Golang 1.9.2 on Windows XP Report

Golang HTTP x509 : erreur concernant l'autorité inconnue pour les certificats

Dans un passé récent, des individus ont rencontré des difficultés lorsqu'ils tentaient d'accéder à leurs systèmes backend en utilisant Golang 1.9.2 sur Windows XP. Bien qu'ils fonctionnent parfaitement sur des systèmes d'exploitation plus modernes tels que Windows et Linux, les utilisateurs exécutant leur code sous Windows XP ont rencontré l'erreur suivante : "x509 : certificat signé par une autorité inconnue."

Tests basés sur un navigateur utilisant Firefox ESR et Les navigateurs Chromium ont révélé que ces navigateurs ne soulevaient aucun problème lié aux certificats lors de l'accès à la même URL à partir du même environnement Windows XP. Notamment, le certificat SSL concerné reste valide et est signé par une autorité de certification de confiance.

Certaines personnes ont essayé de résoudre ce problème en remplaçant la validation TLS à l'aide du paramètre InsecureSkipVerify :

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

Cependant, cette méthode s'est avérée inefficace. Il est essentiel de noter que le remplacement de la validation TLS doit être abordé avec prudence car cela expose l'application à des menaces potentielles telles que des attaques de l'homme du milieu.

Si vous rencontrez le même problème, assurez-vous que vous avoir défini correctement le paramètre InsecureSkipVerify. Vous l'avez peut-être défini par inadvertance sur "InsecureSkyVerify". Voici l'extrait de code correct :

// 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
}

N'oubliez pas que le remplacement de la validation TLS ne doit être envisagé qu'à des fins de test ou en conjonction avec des mesures de vérification personnalisées strictes.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3