Wie behebt man den Fehler „x509: Zertifikat basiert auf altem Common Name-Feld' beim Herstellen einer Verbindung zu MongoDB mit Go?

Patricia Arquette
Freigeben: 2024-10-28 05:51:30
Original
817 Leute haben es durchsucht

How to Fix

Fehler: Beim Herstellen einer Verbindung zum Server mit dem Feld „Legacy Common Name“

Beim Versuch, mit Go eine Verbindung zu einem MongoDB-Server herzustellen, kann Folgendes auftreten: der Fehler:

failed to connect: x509: certificate relies on legacy Common Name field, use SANs or temporarily enable Common Name matching with GODEBUG=x509ignoreCN=0
Nach dem Login kopieren

Dieser Fehler weist darauf hin, dass das für die TLS-Authentifizierung verwendete Zertifikat ein Common Name (CN)-Feld enthält, aber die erforderlichen Subject Alternative Name (SAN)-Felder fehlen. Die TLS-Implementierung von Go ist in den letzten Versionen strenger geworden und bevorzugt jetzt SANs gegenüber CNs für die Host-Verifizierung.

Grundursache:

Die Grundursache dieses Fehlers liegt in die Fehlkonfiguration des SSL-Zertifikats, das für die TLS-Authentifizierung verwendet wird. Das Zertifikat sollte über ein DNS-SAN-Feld verfügen, das mit dem Hostnamen oder der IP-Adresse des MongoDB-Servers übereinstimmt.

Lösung:

Um diesen Fehler zu beheben, müssen Sie das SSL neu generieren Zertifikat mit einem DNS-SAN-Feld. Dies kann mit den folgenden Schritten erreicht werden:

  1. Erstellen Sie eine CSR (Certificate Signing Request):

    openssl req -new \
        -subj "${SUBJ_PREFIX}/CN=${DNS}/emailAddress=${EMAIL}" \
        -key "${KEY}" \
        -addext "subjectAltName = DNS:${DNS}" \
        -out "${CSR}"
    Nach dem Login kopieren
  2. Signieren Sie die CSR mit Ihrer Stammzertifizierungsstelle:

    openssl ca \
        -create_serial \
        -cert "${ROOT_CRT}" \
        -keyfile "${ROOT_KEY}" \
        -days "${CERT_LIFETIME}" \
        -in "${CSR}" \
        -batch \
        -config "${CA_CONF}" \
        -out "${CRT}"
    Nach dem Login kopieren
  3. Überprüfen Sie das resultierende Zertifikat:

    openssl x509 -in server.crt -noout -text
    Nach dem Login kopieren

Sie sollten jetzt über ein Zertifikat mit einem SAN-Abschnitt wie:

X509v3 Subject Alternative Name: 
    DNS:myserver.com
Nach dem Login kopieren

Sobald Sie das Zertifikat neu generiert haben, können Sie es verwenden, um eine sichere Verbindung zum MongoDB-Server herzustellen, ohne auf das zu stoßen Häufiger Namensfehler.

Das obige ist der detaillierte Inhalt vonWie behebt man den Fehler „x509: Zertifikat basiert auf altem Common Name-Feld' beim Herstellen einer Verbindung zu MongoDB mit Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!