为域和子域创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]的可能的解决方法,我会使用许多自签名证书实用程序之一 。
推荐步骤:
- 创build一个自签名的证书
- 将证书导入Windows证书pipe理器
- 在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.com
或test.example.com
首选的方法是build立主题替代名称,如在费边回答中,但请记住,Chrome目前需要将通用名称另外列为主题替代名称(正如他的回答中所示)。 我最近发现这个问题,因为我的公共名称example.com
与SAN www.example.com
和NET::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