Bra*_*rks 85 ssl https google-chrome pkix
最近,Chrome已停止使用我自己签署的SSL证书,并认为它们不安全.当我查看DevTools | Security
选项卡中的证书时,我可以看到它说
主题备用名称缺失此站点的证书不包含包含域名或IP地址的主题备用名称扩展名.
证书错误站点的证书链存在问题(net :: ERR_CERT_COMMON_NAME_INVALID).
我怎样才能解决这个问题?
Bra*_*rks 96
要解决此问题,您需要openssl
在创建证书时提供额外的参数
-sha256 -extfile v3.ext
这v3.ext
是一个像这样的文件,%%DOMAIN%%
替换为您用作您的相同名称Common Name
.更多信息在这里和这里.请注意,通常您将设置Common Name
和%%DOMAIN%%
尝试为其生成证书的域.如果是的话www.mysupersite.com
,那么你就可以使用它.
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names
[alt_names]
DNS.1 = %%DOMAIN%%
Run Code Online (Sandbox Code Playgroud)
另一个注意事项:如果你想要做的就是在查看自签名证书时阻止chrome抛出错误,你可以通过一个特殊的命令行选项告诉Chrome忽略所有站点的所有SSL错误,详见此处在SuperUser上
Ans*_*hul 25
以下解决方案为我在chrome 65(ref)上工作 -
创建一个OpenSSL配置文件(例如:req.cnf)
[req]
distinguished_name = req_distinguished_name
x509_extensions = v3_req
prompt = no
[req_distinguished_name]
C = US
ST = VA
L = SomeCity
O = MyCompany
OU = MyDivision
CN = www.company.com
[v3_req]
keyUsage = critical, digitalSignature, keyAgreement
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
DNS.1 = www.company.com
DNS.2 = company.com
DNS.3 = company.net
Run Code Online (Sandbox Code Playgroud)
创建引用此配置文件的证书
openssl req -x509 -nodes -days 730 -newkey rsa:2048 \
-keyout cert.key -out cert.pem -config req.cnf -sha256
Run Code Online (Sandbox Code Playgroud)
Log*_*gan 16
我创建了一个bash脚本,以便更轻松地生成在Chrome中有效的自签名TLS证书.
安装证书后,请确保重新启动chrome(chrome://restart
).经过测试Chrome 65.x
,它仍然有效.
另一个(更强大)值得一试的cfssl
工具是CloudFlare的工具包:
这是创建 Chrome 信任的 IP 证书的非常简单的方法。
ssl.conf 文件...
[ req ]
default_bits = 4096
distinguished_name = req_distinguished_name
req_extensions = req_ext
prompt = no
[ req_distinguished_name ]
commonName = 192.168.1.10
[ req_ext ]
subjectAltName = IP:192.168.1.10
Run Code Online (Sandbox Code Playgroud)
当然,192.168.1.10 是我们希望 Chrome 信任的本地网络 IP。
创建证书:
openssl genrsa -out key1.pem
openssl req -new -key key1.pem -out csr1.pem -config ssl.conf
openssl x509 -req -days 9999 -in csr1.pem -signkey key1.pem -out cert1.pem -extensions req_ext -extfile ssl.conf
rm csr1.pem
Run Code Online (Sandbox Code Playgroud)
在 Windows 上,将证书导入到所有客户端计算机上的受信任根证书存储中。在 Android 手机或平板电脑上下载证书进行安装。现在 Chrome 将信任 Windows 和 Android 上的证书。
在 Windows 开发盒上,获取 openssl.exe 的最佳位置是“c:\Program Files\Git\usr\bin\openssl.exe”
归档时间: |
|
查看次数: |
111161 次 |
最近记录: |