Maison > développement back-end > Golang > le corps du texte

Pourquoi mon numéro Go TLS échoue-t-il avec « x509 : le certificat repose sur l'ancien champ Nom commun » ?

DDD
Libérer: 2024-10-28 08:13:02
original
681 Les gens l'ont consulté

 Why Does My Go TLS Dial Fail with

Go TLS Dial : échec de la connexion avec le certificat X509 reposant sur le champ de nom commun hérité

Ce problème survient lors de la tentative de connexion à un serveur en utilisant TLS dans Golang, et le certificat du serveur s'appuie sur l'ancien champ Common Name (CN) pour l'identification. La bibliothèque Golang standard vérifie à la place les noms alternatifs du sujet (SAN).

Cause :

Par défaut, le runtime Golang vérifie que les certificats de serveur présentent des SAN, selon les meilleurs pratiques de sécurité. Si un certificat ne dispose pas de SAN et s'appuie à la place sur le champ CN pour l'identification, le runtime Go rejette la connexion, affichant le message d'erreur :

failed to connect: x509: certificate relies on legacy Common Name field, use SANs or temporarily enable Common Name matching with GODEBUG=x509ignoreCN=0
Copier après la connexion

Résolution :

Pour résoudre ce problème, vous avez deux options :

1. Modifiez le certificat de serveur pour utiliser les SAN :

Régénérez le certificat de serveur pour inclure les SAN correspondant au nom d'hôte ou à l'adresse IP que le client utilisera pour se connecter. Cela implique l'utilisation d'autorités de certification (CA) et de commandes OpenSSL pour créer un certificat avec les SAN appropriés.

2. Désactiver temporairement la correspondance CN :

Vous pouvez temporairement désactiver la vérification des SAN par le runtime Go en définissant la variable d'environnement GODEBUG comme ceci :

GODEBUG=x509ignoreCN=0 go run your_program.go
Copier après la connexion

Remarque : La désactivation de la correspondance CN n'est pas une solution recommandée, car elle réduit la sécurité de votre connexion TLS en autorisant l'acceptation des certificats avec CN mais sans SAN.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!