Creating self signed certificate for domain and subdomains - NET::ERR_CERT_COMMON_NAME_INVALID
我按照本教程在Windows上创建签名SSL证书用于开发目的,并且它适用于我的一个域(我使用hosts文件来模拟dns)。 然后我发现我有很多子域名,为每个子域名创建证书会很麻烦。 所以我尝试在
1 | Common Name: *.myserver.net/CN=myserver.net |
但是,在将此证书导入受信任的根证书颁发机构后,Chrome在主域及其所有子域中出现
This server could not prove that it is myserver.net; its security certificate
is from *.myserver.net/CN=myserver.net.This may be caused by a misconfiguration or an attacker intercepting your connection.
Common Name字段中是否有错误导致此错误?
Chrome 58已经放弃了对没有主题备用名称的证书的支持。
继续前进,这可能是您遇到此错误的另一个原因。
解决方法是将您使用的域名添加为"subjectAltName"(X509v3使用者替代名称)。这可以通过更改OpenSSL配置(Linux上的
1 2 3 4 5 6 7 8 9 10 11 | [ 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 |
有了这个,在生成新证书时不要忘记使用
正如Rahul所说,这是一个常见的Chrome和OSX错误。我过去遇到过类似的问题。事实上,我最终厌倦了在测试本地网站工作时使2 [是的我知道并不多]额外点击。
至于这个问题的可能解决方法[使用Windows],我会使用许多自签名证书实用程序之一。
推荐步骤:
注意:第3步将解决Google解决该问题后遇到的问题...考虑到在可预见的将来没有ETA的时间已经过时。**
< br />尽管我更喜欢使用Chrome进行开发,但最近我发现自己处于Firefox Developer Edition中。哪个没有这个问题。
希望这有帮助:)
创建
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | [req] default_bits = 2048 default_keyfile = oats.key encrypt_key = no utf8 = yes distinguished_name = req_distinguished_name x509_extensions = v3_req prompt = no [req_distinguished_name] C = US ST = Cary L = Cary O = BigCompany CN = *.myserver.net [v3_req] keyUsage = critical, digitalSignature, keyAgreement extendedKeyUsage = serverAuth subjectAltName = @alt_names [alt_names] DNS.1 = myserver.net DNS.2 = *.myserver.net |
运行此命令:
1 | openssl req -x509 -sha256 -nodes -days 3650 -newkey rsa:2048 -keyout app.key -out app.crt -config openssl.conf |
输出文件
您的通配符
首选方法是在Fabian的答案中建立主题备用名称,但请记住,Chrome目前要求将公共名称另外列为主题备用名称之一(正如他在答案中正确演示的那样)。我最近发现了这个问题,因为我有SANs
我认为这可能是chrome中的一个bug。长期存在类似的问题:
看到这个。
尝试使用其他浏览器。我认为它应该工作正常。
对于遇到此问题且希望接受测试风险的每个人,都有一个解决方案:转到Chrome中的隐身模式,您就可以打开"高级",然后点击"继续进入some.url"。
如果您需要检查自己维护的某个网站并且只是作为开发人员进行测试(以及当您尚未配置适当的开发证书时),这将非常有用。
当然,这不是为了使用生产网站的人,这个错误表明网站安全存在问题。
如果你厌倦了这个错误。你可以让Chrome不这样做。我不是说这是最好的方式,只是说它是一种方式。
As a workaround, a Windows registry key can be created to allow Google Chrome to use the commonName of a server certificate to match a hostname if the certificate is missing a subjectAlternativeName extension, as long as it successfully validates and chains to a locally-installed CA certificates.
Data type: Boolean [Windows:REG_DWORD]
Windows registry location: HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome
Windows/Mac/Linux/Android preference name: EnableCommonNameFallbackForLocalAnchors
Value: 0x00000001 (Windows), true(Linux), true (Android), (Mac)
To create a Windows registry key, simply follow these steps:Open Notepad
Copy and paste the following content into notepad
Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome]
"EnableCommonNameFallbackForLocalAnchors"=dword:00000001
Go to File > Save as
Filename: any_filename.reg
Save as type: All FilesSelect a preferred location for the file
Click on Save
Double click on the saved file to run
Click on Yes on the Registry Editor warning
在Symantec支持页面上找到此信息:
https://support.symantec.com/en_US/article.TECH240507.html