为域和子域创build自签名证书 – NET :: ERR_CERT_COMMON_NAME_INVALID

我遵循这个教程在Windows上创build签名的SSL证书用于开发目的,它对我的​​一个域(我使用hosts文件来模拟dns)非常有用。 然后我觉得我有很多子域名,这将是一个痛苦的屁股为他们每个人创build一个证书。 所以我尝试使用Common字段中的通配符在serverfault中的某些答案中build议使用通配符。 喜欢这个:

 Common Name: *.myserver.net/CN=myserver.net 

但是,在将此证书导入受信任的根证书颁发机构之后,我在Chrome中为主域及其所有子域获取NET::ERR_CERT_COMMON_NAME_INVALID错误,例如: https://myserver.net //sub1.myserver.net和https://myserver.net

这台服务器无法certificate它是myserver.net; 其安全证书来自* .myserver.net / CN = myserver.net。

这可能是由错误configuration或攻击者拦截您的连接引起的。

公共名称字段中是否有错误导致此错误?

正如Rahul所说,这是一个常见的Chrome和OSX错误。 我过去也有类似的问题。 事实上,当testing一个本地站点工作时,我终于厌倦了做2个[是的,我知道这不是很多]额外的点击。

至于这个问题[使用Windows]的可能的解决方法,我会使用许多自签名证书实用程序之一 。

推荐步骤:

  1. 创build一个自签名的证书
  2. 将证书导入Windows证书pipe理器
  3. 在Chrome证书pipe理器中导入证书
    注意:第3步将解决Google解决该问题后遇到的问题…考虑到时间已经过时,在可预见的将来没有ETA。

    尽pipe我更喜欢使用Chrome进行开发,但最近我发现自己在Firefox Developer Edition中 。 这没有这个问题。

    希望这可以帮助 :)

Chrome 58已经放弃了对没有主题备选名称的证书的支持 。

向前走,这可能是你遇到这个错误的另一个原因。

解决方法是添加您用作“subjectAltName”(X509v3主题备用名称)的域名。 这可以通过更改OpenSSLconfiguration(Linux上的/etc/ssl/openssl.cnf )并将v3_req部分修改为v3_req来完成:

 [ v3_req ] # Extensions to add to a certificate request basicConstraints = CA:FALSE keyUsage = nonRepudiation, digitalSignature, keyEncipherment subjectAltName = @alt_names [alt_names] DNS.1 = myserver.net DNS.2 = sub1.myserver.net 

有了这个,在生成新证书时不要忘记使用-extensions v3_req开关。 (另请参阅如何使用OpenSSL生成带有SubjectAltName的自签名证书? )

您的通配符*.example.com不涵盖根域example.com但将覆盖域上的任何变体,例如www.example.comtest.example.com

首选的方法是build立主题替代名称,如在费边回答中,但请记住,Chrome目前需要将通用名称另外列为主题替代名称(正如他的回答中所示)。 我最近发现这个问题,因为我的公共名称example.com与SAN www.example.comNET::ERR_CERT_COMMON_NAME_INVALID ,但得到了Chrome的NET::ERR_CERT_COMMON_NAME_INVALID警告。 我必须使用example.com生成一个新的证书签名请求作为通用名称 SAN之一。 然后,Chrome完全信任该证书。 不要忘记将根证书导入Chrome浏览器,作为识别网站的可信机构。

我认为这可能是一个铬的错误。 后面有一个类似的问题: 看到这个。

尝试在不同的浏览器。 我认为它应该工作正常。

如果你厌倦了这个错误。 你可以让Chrome不能这样做。 我不是说这是最好的方式。

作为一种解决方法,可以创buildWindowsregistry项,以便Google Chrome可以使用服务器证书的commonName与主机名匹配(如果证书缺lesssubjectAlternativeName扩展名),只要它成功validation并链接到本地​​安装的CA证书。

数据types:Boolean [Windows:REG_DWORD] Windowsregistry位置:HKEY_LOCAL_MACHINE \ SOFTWARE \ Policies \ Google \ Chrome Windows / Mac / Linux / Android偏好名称:EnableCommonNameFallbackForLocalAnchors值:0x00000001(Windows),true(Linux),true(Android), (Mac)要创buildWindowsregistry项,只需按照下列步骤操作:

打开记事本将以下内容复制并粘贴到记事本Windowsregistry编辑器版本5.00中

[HKEY_LOCAL_MACHINE \ SOFTWARE \ Policies \ Google \ Chrome]“EnableCommonNameFallbackForLocalAnchors”= dword:00000001转到文件>另存为文件名:any_filename.reg另存为types:所有文件

select文件的首选位置

点击保存

双击保存的文件运行

单击registry编辑器警告上的是

在Symantec支持页面上find以下信息: https : //support.symantec.com/zh_CN/article.TECH240507.html