Chrome NET::ERR_CERT_AUTHORITY_INVALID error on self signing certificate at LocalHost
我正在尝试在我的本地PC上设置开发环境。由于生产网站支持HTTPS(这些日子不支持?),我想在localhost上也有这个。我觉得这很容易,但没有。
我有一个XAMP安装,并设置所有,所以我可以访问该网站。但是,每当我在本地访问网站上的任何页面时,我都会收到Chrome警告:
NET :: ERR_CERT_AUTHORITY_INVALID
我确实按照以下线程尝试解决它:
让Chrome接受自签名的localhost证书
我还使用正确的主题备用名称(SAN)部分创建了证书,基于此:
How to Set Up HTTPS Locally Without Getting Annoying Browser Privacy Errors
之后,我生成了CER或P7B文件并将其导入Chrome。我重新启动了Apache和Chrome。
我将证书放在受信任的根证书颁发机构中。不知何故,Chrome决定将其置于中级根证书颁发机构......
我使用的是Chrome 61,我在60年代也是如此。
所以不知怎的,我无法安装自签名证书,并继续得到这个警告,这基本上使得无法在localhost上进行开发......
我知道这种自签名并不完全值得信赖,但必须有一种离线开发的方法吗?从现在开始我们必须在线建立网站是没有意义的吗?...
有任何想法吗?
以下是使用KeyStore Explorer工具的说明。
我创建证书时我之前缺少的两件事是:
- AKID(授权密钥标识符) - 选择创建时使用的"CN ="。
- 添加"基本约束"选项(不要选择"是CA")
如果没有这两件事,即使您已将自签名证书安装到MS-CAPI PKI信任库(作为"受信任的根权限"),Chrome也会发出警告/错误。
以下是我使用的步骤。
我在此之后解决了完全相同的问题。
问题似乎与证书的创建方式有关。
以下代码来自上述网站。
1 2 3 4 5 6 7 8 9 10 | #!/usr/bin/env bash mkdir ~/ssl/ openssl genrsa -des3 -out ~/ssl/rootCA.key 2048 openssl req -x509 -new -nodes -key ~/ssl/rootCA.key -sha256 -days 1024 -out ~/ssl/rootCA.pem #!/usr/bin/env bash sudo openssl req -new -sha256 -nodes -out server.csr -newkey rsa:2048 -keyout server.key -config <( cat server.csr.cnf ) sudo openssl x509 -req -in server.csr -CA ~/ssl/rootCA.pem -CAkey ~/ssl/rootCA.key -CAcreateserial -out server.crt -days 500 -sha256 -extfile v3.ext |
server.csr.cnf文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | [req] default_bits = 2048 prompt = no default_md = sha256 distinguished_name = dn [dn] C=US ST=New York L=Rochester O=End Point OU=Testing Domain emailAddress=your-administrative-address@your-awesome-existing-domain.com CN = localhost |
v3.ext文件
1 2 3 4 5 6 7 | authorityKeyIdentifier=keyid,issuer basicConstraints=CA:FALSE keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment subjectAltName = @alt_names [alt_names] DNS.1 = localhost |
有一个很好的基于GUI的java实用程序,我用它来创建和操作所有PKI称为KeyStore Explorer的东西。比所有命令行选项容易得多:
http://keystore-explorer.org/