Maison  >  Article  >  développement back-end  >  Pourquoi ma connexion Go TLS échoue-t-elle avec « x509 : le certificat repose sur l'ancien champ Nom commun » ?

Pourquoi ma connexion Go TLS échoue-t-elle avec « x509 : le certificat repose sur l'ancien champ Nom commun » ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-28 02:22:31902parcourir

Why Does My Go TLS Connection Fail with

La connexion Go TLS échoue avec l'erreur "x509 : le certificat repose sur le champ de nom commun hérité"

Lors de la tentative d'établissement d'une connexion TLS à MongoDB en utilisant Go, une erreur « Échec de la connexion : x509 : le certificat repose sur le champ de nom commun hérité » peut survenir. Ce problème provient des contrôles de validation des certificats qui ont été mis à jour pour donner la priorité aux noms alternatifs du sujet (SAN) par rapport aux champs de nom commun (CN) pour l'identité du certificat.

Cause première :

Le certificat utilisé pour l'authentification TLS repose sur un champ de nom commun hérité au lieu des SAN, qui sont considérés comme plus sécurisés pour l'identification des hôtes. Les versions actuelles de Go ont des contrôles de validation de certificat plus stricts qui imposent l'utilisation de SAN.

Solution :

Pour résoudre ce problème, vous devez rectifier le certificat lui-même en vous assurant qu'il inclut des SAN. Cela implique de générer un nouveau certificat avec les champs SAN appropriés ou de reconfigurer le certificat existant pour les inclure.

Corriger la source :

  1. Créer un CSR (Certificate Signing Request) : Utilisez un outil comme OpenSSL pour créer un CSR qui inclut des champs SAN pour les noms d'hôtes souhaités.
  2. Signez le CSR avec une autorité de certification racine : Utilisez le autorité de certification racine (CA) qui a émis le certificat d'origine pour signer la CSR, créant ainsi un nouveau certificat avec les SAN inclus.

Inspection du nouveau certificat :

Confirmez que les champs SAN sont présents dans le certificat nouvellement généré en l'inspectant à l'aide de la commande suivante :

openssl x509 -in server.crt -noout -text

Remarque :

Une fois que vous avez généré un certificat avec les SAN, vous pouvez l'utiliser avec votre code Go pour établir une connexion TLS sans rencontrer l'erreur « x509 : le certificat repose sur le champ de nom commun hérité ». Il peut être nécessaire de mettre à jour les fichiers de certificat dans votre code Go et de redémarrer le processus de connexion pour garantir que le nouveau certificat est utilisé.

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!

Déclaration:
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