Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google chrome 受试者替代名称缺失&;错误\u SSL\u版本\u或\u密码\u不匹配_Google Chrome_Ssl_Openssl_Localhost_Ssl Certificate - Fatal编程技术网

Google chrome 受试者替代名称缺失&;错误\u SSL\u版本\u或\u密码\u不匹配

Google chrome 受试者替代名称缺失&;错误\u SSL\u版本\u或\u密码\u不匹配,google-chrome,ssl,openssl,localhost,ssl-certificate,Google Chrome,Ssl,Openssl,Localhost,Ssl Certificate,我跟着做https://localhost:3000/在Chrome和Mac中工作。今天,它突然不起作用了 https://localhost:3000给出的不安全: Subject Alternative Name Missing The certificate for this site does not contain a Subject Alternative Name extension containing a domain name or IP address. 我按照前面的步骤

我跟着做
https://localhost:3000/
在Chrome和Mac中工作。今天,它突然不起作用了

https://localhost:3000
给出的
不安全

Subject Alternative Name Missing
The certificate for this site does not contain a Subject Alternative Name extension containing a domain name or IP address.
我按照前面的步骤重新信任了此证书,但没有任何帮助。然后我看到了,关于重新制作ssl密钥

所以我做了
v3.ext

authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names

[alt_names]
DNS.1 = localhost
那么

然而,它又回来了

unknown option -extfile
req [options] <infile >outfile
where options  are
 -inform arg    input format - DER or PEM
 -outform arg   output format - DER or PEM
 ... ...
然后,我做到了

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
重新打开
https://localhost:3000
在Chrome中给我

localhost uses an unsupported protocol.
ERR_SSL_VERSION_OR_CIPHER_MISMATCH

有人能帮忙吗?

我建议以下解决方案:创建自签名CA证书和由该CA签名的web服务器证书。当您将此小链安装到web服务器时,它将与Chrome一起工作

为您的CA MyCompanyCA.cnf创建包含内容的配置文件(您可以根据需要进行更改):

为web服务器证书创建扩展配置文件MyCompanyLocalhost.ext:

subjectAltName = @alt_names
extendedKeyUsage = serverAuth

[alt_names]
DNS.1   = localhost
DNS.2   = mypc.mycompany.com
然后执行以下命令:

openssl req -x509 -newkey rsa:2048 -out MyCompanyCA.cer -outform PEM -keyout MyCompanyCA.pvk -days 10000 -verbose -config MyCompanyCA.cnf -nodes -sha256 -subj "/CN=MyCompany CA"

openssl req -newkey rsa:2048 -keyout MyCompanyLocalhost.pvk -out MyCompanyLocalhost.req -subj /CN=localhost -sha256 -nodes
openssl x509 -req -CA MyCompanyCA.cer -CAkey MyCompanyCA.pvk -in MyCompanyLocalhost.req -out MyCompanyLocalhost.cer -days 10000 -extfile MyCompanyLocalhost.ext -sha256 -set_serial 0x1111
因此,您将获得MyCompanyCA.cer、MyCompanyLocalhost.cer和MyCompanyLocalhost.pvk文件,这些文件可以安装到web服务器上

如何在将证书安装到web服务器之前检查它是否与Chrome兼容。在本地PC上执行以下命令以运行web服务器模拟器:

openssl s_server -accept 15000 -cert MyCompanyLocalhost.cer -key MyCompanyLocalhost.pvk -CAfile MyCompanyCA.cer -WWW
然后,您可以在以下位置访问此页面:
您将看到一个错误,即MyCompanyLocalhost.cer不受信任,如果您还想消除此错误,请将MyCompanyCA.cer安装到操作系统的证书受信任列表中。

感谢Oleg提供了很好的解决方案。 在我的例子中,URI被指定为IP地址而不是主机名, 最后,我从中得到了解决方案

我编辑@Oleg的MyCompanyLocalhost.ext,从

subjectAltName = @alt_names
extendedKeyUsage = serverAuth

[alt_names]
DNS.1   = localhost
DNS.2   = mypc.mycompany.com


我想这就是你想要的;您可以使用
-config
传入包含配置参数的文件。Stack Overflow是一个用于编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参见帮助中心中的。也许或者会是一个更好的提问的地方。另请看我的编辑1,我有一个
ERR\u SSL\u VERSION\u或\u CIPHER\u不匹配
error…哇,它工作了。。。非常感谢。为了记录,在生成这些文件之后,我在我的
www
中更改为
var config={key:fs.readFileSync('ssl/MyCompanyLocalhost.pvk'),cert:fs.readFileSync('ssl/MyCompanyLocalhost.cer')}
。Chrome首先给出了
ERR\u CERT\u AUTHORITY\u INVALID
错误,然后我通过
Keychain Access
将该证书添加到
login
,成功了!哇…我按照你的建议做了,在我挣扎了将近5个小时后,它像一个符咒一样奏效了!!谢谢你!花了几个小时寻找答案,但这成功了!真希望我能把它升级一百万次,这是唯一一个对meI有效的解决方案,我可以用OSX上最新的Chrome 65确认这一点。
openssl req -x509 -newkey rsa:2048 -out MyCompanyCA.cer -outform PEM -keyout MyCompanyCA.pvk -days 10000 -verbose -config MyCompanyCA.cnf -nodes -sha256 -subj "/CN=MyCompany CA"

openssl req -newkey rsa:2048 -keyout MyCompanyLocalhost.pvk -out MyCompanyLocalhost.req -subj /CN=localhost -sha256 -nodes
openssl x509 -req -CA MyCompanyCA.cer -CAkey MyCompanyCA.pvk -in MyCompanyLocalhost.req -out MyCompanyLocalhost.cer -days 10000 -extfile MyCompanyLocalhost.ext -sha256 -set_serial 0x1111
openssl s_server -accept 15000 -cert MyCompanyLocalhost.cer -key MyCompanyLocalhost.pvk -CAfile MyCompanyCA.cer -WWW
subjectAltName = @alt_names
extendedKeyUsage = serverAuth

[alt_names]
DNS.1   = localhost
DNS.2   = mypc.mycompany.com
subjectAltName = @alt_names
extendedKeyUsage = serverAuth

[alt_names]

DNS.1 = domain.com 
# IP address
IP.1 = 192.168.2.221
IP.2 = 127.0.0.1