GENERAL:如果我得到“x509:证书依赖于遗留的通用名称字段”错误,我该怎么办?

依琳娜Floim
2022-03-31 05:40

描述:

x509:证书依赖于旧的通用名称字段,使用san或临时启用通用名称匹配GODEBUG=x509ignoreCN=0

此错误表明SSL证书不符合在GoLang 1.15中引入的更改

从Go版本1.15开始,将X.509证书上的CommonName字段视为主机名的旧行为已经被弃用主题备选名称(SAN)现在默认情况下是禁用的。

这可能会影响现有的SSL证书和依赖于这些证书的任何安全连接,包括数据库、客户端(如Docker)和应用程序。

解决方法:

需要创建一个新的有效证书来包含subjectAltName属性,并且应该在使用openssl命令创建SSL自签名证书时直接添加-addext国旗。例如:

-addext "subjectAltName = DNS: domainname.com "

(可从OpenSSL 1.1.1获得。更多的信息可以在这里找到StackExchange线程

作为一种变通方法,可以通过添加值来临时重新启用CommonName字段所处理的行为x509ignoreCN = 0GODEBUG环境变量。例如,在终端中运行以下命令:

echo 'GODEBUG=x509ignoreCN=0' > ~/.profile

然后可以检查证书文件,以确认它包含主题备选名称:

Openssl x509 -in服务器。CRT - out -text

该输出应该包含类似于以下内容的条目:

X509v3主题备选方案
名称:DNS: myserver.com

注意:大于3.37的x射线版本与Go的更新版本捆绑在一起。从Go 1.18版本开始,GODEBUG=x509ignoreCN=0标志是弃用因此,应该更新证书以克服错误,因为解决方法将不再有效。