Why Does My Go TLS Dial Fail with \'x509: certificate relies on legacy Common Name field\'?

DDD
Release: 2024-10-28 08:13:02
Original
681 people have browsed it

 Why Does My Go TLS Dial Fail with

Go TLS Dial: Failed to Connect with X509 Certificate Relying on Legacy Common Name Field

This issue arises when attempting to connect to a server using TLS in Golang, and the server's certificate relies on the legacy Common Name (CN) field for identification. The standard Golang library checks for Subject Alternative Names (SANs) instead.

Cause:

By default, the Golang runtime verifies that server certificates present SANs, as per best security practices. If a certificate lacks SANs and instead relies on the CN field for identification, the Go runtime rejects the connection, displaying the error message:

failed to connect: x509: certificate relies on legacy Common Name field, use SANs or temporarily enable Common Name matching with GODEBUG=x509ignoreCN=0
Copy after login

Resolution:

To resolve this issue, you have two options:

1. Modify the Server Certificate to Use SANs:

Regenerate the server certificate to include SANs corresponding to the hostname or IP address that the client will use to connect. This involves using certificate authorities (CAs) and OpenSSL commands to create a certificate with appropriate SANs.

2. Disable CN Matching Temporarily:

You can temporarily disable the Go runtime's check for SANs by setting the GODEBUG environment variable like so:

GODEBUG=x509ignoreCN=0 go run your_program.go
Copy after login

Note: Disabling CN matching is not a recommended solution, as it reduces the security of your TLS connection by allowing certificates with CNs but no SANs to be accepted.

The above is the detailed content of Why Does My Go TLS Dial Fail with \'x509: certificate relies on legacy Common Name field\'?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!