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

Comment corriger l'erreur « x509 : le certificat repose sur le champ de nom commun hérité » lors de la connexion à MongoDB avec Go ?

Patricia Arquette
Libérer: 2024-10-28 05:51:30
original
933 Les gens l'ont consulté

How to Fix

Erreur : connexion au serveur avec le champ de nom commun hérité

Lorsque vous essayez d'établir une connexion à un serveur MongoDB à l'aide de Go, vous pouvez rencontrer l'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

Cette erreur indique que le certificat utilisé pour l'authentification TLS contient un champ Nom commun (CN) mais ne dispose pas des champs Nom alternatif du sujet (SAN) nécessaires. L'implémentation TLS de Go est devenue plus stricte dans les versions récentes et favorise désormais les SAN par rapport aux CN pour la vérification de l'hôte.

Cause première :

La cause première de cette erreur réside dans la mauvaise configuration du certificat SSL utilisé pour l'authentification TLS. Le certificat doit avoir un champ DNS SAN correspondant au nom d'hôte ou à l'adresse IP du serveur MongoDB.

Solution :

Pour résoudre cette erreur, vous devez régénérer le SSL certificat avec un champ DNS SAN. Ceci peut être réalisé en suivant les étapes suivantes :

  1. Créer une CSR (demande de signature de certificat) :

    openssl req -new \
        -subj "${SUBJ_PREFIX}/CN=${DNS}/emailAddress=${EMAIL}" \
        -key "${KEY}" \
        -addext "subjectAltName = DNS:${DNS}" \
        -out "${CSR}"
    Copier après la connexion
  2. Signez le CSR avec votre autorité de certification racine :

    openssl ca \
        -create_serial \
        -cert "${ROOT_CRT}" \
        -keyfile "${ROOT_KEY}" \
        -days "${CERT_LIFETIME}" \
        -in "${CSR}" \
        -batch \
        -config "${CA_CONF}" \
        -out "${CRT}"
    Copier après la connexion
  3. Inspectez le certificat obtenu :

    openssl x509 -in server.crt -noout -text
    Copier après la connexion

Vous devriez maintenant avoir un certificat avec une section SAN comme :

X509v3 Subject Alternative Name: 
    DNS:myserver.com
Copier après la connexion

Une fois que vous avez régénéré le certificat, vous pouvez l'utiliser pour établir une connexion sécurisée au serveur MongoDB sans rencontrer le Erreur de nom commun.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal