从 Chrome 58 开始,它不再接受依赖于Common Name
:https ://productforums.google.com/forum/#!topic/chrome/zVo3M8CgKzQ;context-place= topicsearchin/chrome/category $3ACanary%7Csort 的自签名证书:相关性%7Cspell:false
相反,它需要使用Subject Alt Name
. 我以前一直在关注如何生成自签名证书的指南:https ://devcenter.heroku.com/articles/ssl-certificate-self效果很好,因为我需要server.crt
和server.key
文件来完成我正在做的事情。我现在需要生成新的证书,其中包括SAN
但我所有的尝试都不适用于 Chrome 58。
这是我所做的:
我按照上面提到的 Heroku 文章中的步骤生成密钥。然后我写了一个新的 OpenSSL 配置文件:
[ req ]
default_bits = 2048
distinguished_name = req_distinguished_name
req_extensions = san
extensions = san
[ req_distinguished_name ]
countryName = US
stateOrProvinceName = Massachusetts
localityName = Boston
organizationName = MyCompany
[ san ]
subjectAltName = DNS:dev.mycompany.com
然后server.crt
使用以下命令生成:
openssl req \
-new \
-key server.key \
-out server.csr \
-config config.cnf \
-sha256 \
-days 3650
我在 Mac 上,所以我server.crt
用钥匙串打开了文件,将它添加到我的系统证书中。然后我将其设置为Always Trust
.
除了用于设置 SAN 值的配置文件之外,这些步骤与我在以前版本的 Chrome 中用于生成和信任自签名证书的步骤类似。
但是,在此之后,我仍然可以使用ERR_CERT_COMMON_NAME_INVALID
Chrome 58。