证书名称“不匹配”错误

证书名称“不匹配”错误

我的 Apache2 服务器上有一个自签名证书,我正在尝试正确配置,以便证书上的“颁发给:”名称与地址栏中的 HTTPS 地址匹配。我收到以下安全错误:

The certificate for this site does not contain a Subject Alternative Name 
extension containing a domain name or IP address

There are issues with the site's certificate chain 
(net::ERR_CERT_COMMON_NAME_INVALID)

请参见下图。在此输入图像描述

答案1

经过大量研究,我认为问题在于,最近 Chrome (58) 和 Firefox (48) 现在都要求证书指定它们在SubjectAltName 字段中应用的主机名;主题字段中的值将被忽略。更多信息请点击这里: https://textslashplain.com/2017/03/10/chrome-deprecates-subject-cn-matching/。此外,如果您想在 1:24:00 左右听到声音解释,Steve Gibson 对此做了很好的解释: https://twit.tv/shows/security-now/episodes/610?autostart=false

话虽如此,对于那些创建自签名证书的人来说,我们现在需要采取额外的步骤 - 添加主题备用名称(SAN 字段)。这一切都在这里涵盖: https://stackoverflow.com/questions/10175812/how-to-create-a-self-signed-certificate-with-openssl/27931596#27931596;然而,这是一个漫长的过程,有很多答案。基本上这一切都归结为 JWW 给出的答案,您必须创建一个包含 subjectAltName 字段的配置文件,然后将其传递,如下所示:

openssl req -config example-com.conf -new -x509 -sha256 -newkey rsa:2048 -nodes \
-keyout example-com.key.pem -days 365 -out example-com.cert.pem

JWW 回答的步骤中有一个很好的配置文件示例。查找:“配置文件(通过 -config 选项传递)”

现在你的证书将有一个 subjectAltName 并且 Chrome 和 Firefox 会很高兴

答案2

openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -subj "/C=US/ST=Oregon/L=Portland/O=Company Name/OU=Org/CN=www.example.com"

将“subj”替换为您想要的名称

答案3

我知道这不一定是您确切问题的正确答案,但您可能没有理由在以下情况下使用自签名证书让我们加密存在。它们是完全免费的证书服务,您收到的证书的功能几乎与您从其他地方(即 Comodo)获得的证书相同。另外,正如 Fox 评论的那样,不要通过 IP 连接;如果您使用 SSL/TLS 连接到服务器,并且它使用的证书不包含您连接到的地址(即两个主机名指向同一台计算机,但证书上只有一个。您连接到的不是在证书上),您的浏览器将报告连接不安全。

相关内容