当前位置: 首页 > 知识库问答 >
问题:

无效的自签名SSL证书-"主题替代名称丢失"

孙光临
2023-03-14

最近,Chrome已经停止使用我自己签名的SSL证书,并认为它们不安全。当我查看DevTools|Security选项卡中的证书时,我可以看到它说

主题备选名称缺少此站点的证书不包含包含域名或IP地址的主题备选名称扩展名。

证书错误站点的证书链存在问题(net::ERR\u CERT\u COMMON\u NAME\u无效)。

我怎样才能解决这个问题?

共有3个答案

凤自珍
2023-03-14

正如其他人所提到的,由于生成的证书不包括SAN(subjectAltName)字段,因此出现了NET::ERR\u CERT\u COMMON\u NAME\u INVALID错误。

自2000年5月以来,RFC2818已不建议回到通用名称字段。自版本58以来,Chrome强制使用subjectAltName字段(请参阅Chrome58弃用)。

OpenSSL接受x509v3配置文件,以向证书添加扩展配置(有关配置选项,请参阅subjectAltName字段)。

我创建了一个带有简单选项的自签名tls bash脚本,以便轻松生成证书颁发机构并使用OpenSSL签名x509证书(在Chrome使用subjectAltName字段有效)。

脚本将引导您完成一系列问题,包括必要的信息(包括subjectAltName字段)。你可以参考自述。md了解更多详细信息和自动化选项。

请务必在安装新证书后重新启动chrome。

chrome://restart
  • Docker文档提供了一个非常简单的示例,用于创建自签名证书颁发机构和使用OpenSSL对证书进行签名
卢光誉
2023-03-14

以下解决方案在chrome 65上对我有效(参考)-

创建OpenSSL配置文件(示例:req.cnf)

[req]
distinguished_name = req_distinguished_name
x509_extensions = v3_req
prompt = no
[req_distinguished_name]
C = US
ST = VA
L = SomeCity
O = MyCompany
OU = MyDivision
CN = www.company.com
[v3_req]
keyUsage = critical, digitalSignature, keyAgreement
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
DNS.1 = www.company.com
DNS.2 = company.com
DNS.3 = company.net

创建引用此配置文件的证书

openssl req -x509 -nodes -days 730 -newkey rsa:2048 \
 -keyout cert.key -out cert.pem -config req.cnf -sha256
阎单鹗
2023-03-14

要解决这个问题,基本上需要在创建证书时向openssl提供一个额外的参数

-sha256-extfile v3。分机

其中v3。ext是一个类似这样的文件,%%DOMAIN%%替换为与通用名相同的名称。更多信息在这里和这里。请注意,通常您会将公共名称%%DOMAIN%%设置为您试图为其生成证书的域。如果是www.mysupersite。com,那么您可以同时使用它。

authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names

[alt_names]
DNS.1 = %%DOMAIN%%

另一个注意事项:如果您要做的只是阻止chrome在查看自签名证书时抛出错误,那么您可以告诉chrome忽略所有站点的所有SSL错误,方法是使用一个特殊的命令行选项启动它,如SuperUser中所述

 类似资料:
  • 如果我使用OpenSSL创建一个X509证书,该证书使用CA证书签名,并包括X509v3 SAN(主题替代名称)扩展,则生成的证书包含两次SAN扩展,而如果证书是自签名的,则SAN扩展仅出现一次(我会认为正确)。 复制步骤: 之后,如果我输入证书,“X509v3受试者替代名称”部分将打印两次: 如果未使用CA且证书通过以下方式进行自签名,则情况并非如此: 我可以使用OpenSSL 1.0.2n以及

  • 我最近升级了Inteliij IDEA 2019.2,如果我尝试从IDE中提取Git,我会发现以下错误:无法访问'https://github.xxx.com/app-Hello-USD/DGS.git/“:SSL证书问题:证书链中的自签名证书。 有人能帮我什么选项,我必须启用。 谢谢

  • 并检查证书,有效期为5天。 我需要写一个脚本,它将只是检查这个证书的过期日期,但不幸的是,它不能验证它。你能不能换个正确的流量? 我的程序:

  • 我已经通过终端在远程ubuntu机器中逐一使用以下命令生成了一个SSL自签名证书: T我已经将添加到本地计算机的cacerts中,使用命令提示符中的keytool作为admin。还将添加到“受信任的根证书颁发机构”中。他发出对Postman上的远程ubuntu机器服务器的HTTPS请求可以正常工作,但在IntelliJ上就不行了,我可以放心地得到:

  • 我有一个带有这些命令的自签名证书链,并在Apache服务器上配置了它们 但是当我尝试 我从openssl中得到一个错误 用于生成证书的命令或配置文件有问题吗? [req] distinguished_name=req_distinguished_name x509_extensions=v3_ca dirstring_type=nobmp [req_distinguished_name] comm

  • 问题内容: 当尝试使用其PHP库通过Twilio发送消息时,我正在为这个错误而苦苦挣扎: 我在Windows 7上使用了wamp。 我当然找到了所有其他有关证书错误的信息。据我所知,通常更新或添加文件即可解决该问题。但是,即使这样做,我仍然遇到相同的错误。 就像这里所做的健全性检查一样,这正是我所做的: 从此处下载了最新的证书:http : //curl.haxx.se/ca/cacert.pem