Ssl 正在为域和子域创建自签名证书-NET::ERR\u CERT\u COMMON\u NAME\u无效
我按照教程在Windows上创建签名SSL证书以进行开发,它对我的一个域非常有效(我使用hosts文件模拟dns)。然后我发现我有很多子域,为每个子域创建一个证书是一件很麻烦的事。因此,我尝试在Ssl 正在为域和子域创建自签名证书-NET::ERR\u CERT\u COMMON\u NAME\u无效,ssl,dns,openssl,windows-7-x64,Ssl,Dns,Openssl,Windows 7 X64,我按照教程在Windows上创建签名SSL证书以进行开发,它对我的一个域非常有效(我使用hosts文件模拟dns)。然后我发现我有很多子域,为每个子域创建一个证书是一件很麻烦的事。因此,我尝试在Common字段中使用通配符创建一个证书,正如在serverfault的一些答案中所建议的那样。像这样: Common Name: *.myserver.net/CN=myserver.net 但是,在将此证书导入受信任的根证书颁发机构后,我在Chrome中获得了NET::ERR\u CERT\u CO
Common
字段中使用通配符创建一个证书,正如在serverfault的一些答案中所建议的那样。像这样:
Common Name: *.myserver.net/CN=myserver.net
但是,在将此证书导入受信任的根证书颁发机构后,我在Chrome中获得了NET::ERR\u CERT\u COMMON\u NAME\u INVALID
错误,例如:https://sub1.myserver.net
和https://myserver.net
此服务器无法证明它是myserver.net;其安全证书
来自*.myserver.net/CN=myserver.net
这可能是由于配置错误或攻击者拦截您的连接造成的
公共名称字段中是否存在导致此错误的错误?我认为这可能是chrome中的错误。很久以前也有类似的问题:
在其他浏览器中尝试。我认为它应该可以正常工作。正如Rahul所说,它是一种常见的Chrome和OSX bug。我过去也有类似的问题。事实上,在测试本地站点的工作时,我终于厌倦了2次[是的,我知道没有多少次]额外的点击。
至于[使用Windows]解决此问题的可能方法,我将使用其中一个。
注意:一旦谷歌解决了这个错误,第3步将解决遇到的问题。考虑到时间已经过时,在可预见的未来没有ETA。**
虽然我更喜欢使用Chrome进行开发,但我最近发现自己陷入了困境。没有这个问题。
希望这有帮助:)
解决方法是添加用作“subjectAltName”(X509v3 Subject备用名称)的域名。这可以通过更改OpenSSL配置(Linux上的
/etc/ssl/OpenSSL.cnf
)并修改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
开关。(另请参见)您的通配符*.example.com
不覆盖根域example.com
,但将覆盖子域上的任何变量,如www.example.com
或test.example.com
首选的方法是建立受试者的备选名称,如中所示,但请记住,Chrome目前要求将通用名称作为受试者备选名称之一额外列出(正如他的答案中正确说明的那样)。我最近发现了这个问题,因为我在SANswww.example.com
和test.example.com
中使用了公共名称example.com
,但从Chrome得到了NET::ERR\u CERT\u Common\u Name\u INVALID
警告。我必须以example.com
作为公共名称和SAN之一生成一个新的证书签名请求。然后Chrome完全信任证书。别忘了将根证书导入Chrome,作为识别网站的可信机构。Chrome 58有
向前看,这可能是您遇到此错误的另一个原因。如果您厌倦了此错误。你可以让Chrome不这样做。我不是说这是最好的方式,只是说这是一种方式 作为一种解决方法,可以创建一个Windows注册表项,允许Google Chrome在证书缺少subjectAlternativeName扩展名时使用服务器证书的commonName来匹配主机名,只要它成功验证并链接到本地安装的CA证书 数据类型:布尔[Windows:REG\u DWORD] Windows注册表位置:HKEY\U LOCAL\U MACHINE\SOFTWARE\Policys\Google\Chrome Windows/Mac/Linux/Android首选项名称:EnableCommonNameFallbackForLocalAnchors 值:0x00000001(Windows)、true(Linux)、true(Android)、(Mac) 要创建Windows注册表项,只需执行以下步骤: 打开记事本 将以下内容复制并粘贴到记事本中 Windows注册表编辑器5.00版 [HKEY\U LOCAL\U MACHINE\SOFTWARE\Policys\Google\Chrome] “EnableCommonNameFallBackorLocalanchors”=dword:00000001 转到文件>另存为 Filename:any_Filename.reg 另存为类型:所有文件 选择文件的首选位置 点击保存 双击要运行的已保存文件 在注册表编辑器警告中单击Yes 在Symantec支持页面上找到以下信息:
创建
openssl.conf
文件:
[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
运行此命令并:
openssl req -x509 -sha256 -nodes -days 3650 -newkey rsa:2048 -keyout app.key -out app.crt -config openssl.conf
输出文件
app.crt
和app.key
对我来说很有用。对于遇到这种情况并想接受风险测试的每个人来说,有一个解决方案:在Chrome中转到匿名模式,您将能够打开“高级”并单击“继续到某个.url”
如果您需要检查一些您正在维护的网站,并且只是作为开发人员进行测试(并且当您还没有配置正确的开发证书时),这将非常有用
当然,这不适用于在生产中使用网站的人,因为该错误表明网站安全存在问题。在创建PWA进行本地开发和测试时,提供的答案对我(Chrome或Firefox)不起作用。请勿用于生产!我能够使用以下工具:
- 通用名称:添加系统的“本地主机”和IP,例如192.168.1.12