Erreur de validation du certificat dans Windows XP pour Golang HTTP x509
Problème :
Lors de l'exécution une application client utilisant Golang 1.9.2 sur Windows XP, les utilisateurs rencontrent l'erreur « x509 : certificat signé par une autorité inconnue » lors des requêtes HTTP GET et POST, même si le certificat est valide et signé par une autorité de confiance.
Contexte :
Cette erreur se produit lorsque le client ne parvient pas à vérifier la chaîne de certificats du serveur car les certificats intermédiaires nécessaires à la validation ne sont pas installés dans le magasin de certificats du système hôte.
Tentative de solution :
Pour résoudre le problème, l'utilisateur a implémenté le code suivant sur la base des conseils d'autres sources :
tr := &http.Transport{ TLSClientConfig: &tls.Config{InsecureSkyVerify: true}, }
Cependant, cette solution est incorrecte , car le nom du champ est "InsecureSkipVerify" au lieu de "InsecureSkyVerify".
Solution correcte :
L'implémentation correcte devrait être :
tr := &http.Transport{ TLSClientConfig: &tls.Config{InsecureSkipVerify: true}, }
Avertissement :
Veuillez faire preuve de prudence lorsque vous utilisez « InsecureSkipVerify » car il désactive la validation du certificat du serveur et les vérifications du nom d'hôte. Cela peut exposer le client à des risques de sécurité, tels que des attaques de l'homme du milieu. Il est recommandé d'utiliser une vérification personnalisée ou "VerifyConnection" ou "VerifyPeerCertificate" pour une connexion sécurisée.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!