我正在尝试在我的本地PC上设置开发环境。由于生产网站支持HTTPS(这些日子不支持?),我想在localhost上也有这个。我认为这很容易,但没有。
我有一个XAMP安装,并设置所有,所以我可以访问该网站。但是,每当我在本地访问网站上的任何页面时,都会收到chrome警告:
NET :: ERR_CERT_AUTHORITY_INVALID
我确实按照以下主题尝试解决它:
Getting Chrome to accept self-signed localhost certificate
我还使用正确的主题备用名称(SAN)部分创建了证书,基于此:
https://deliciousbrains.com/https-locally-without-browser-privacy-errors/
之后,我生成了CER或P7B文件并将其导入Chrome。我重新启动了Apache和Chrome。
我将证书放在受信任的根证书颁发机构中。不知何故,Chrome决定将其置于中级根证书颁发机构......
我使用的是Chrome 61,我在60年代也是如此。
所以不知怎的,我无法安装自签名证书,并且不断收到此警告,这基本上使得无法在localhost上进行开发......
我知道这种自我签名并不完全值得信赖,但必须有一种离线开发方式吗?从现在开始我们必须在线建立网站是没有意义的吗?...
有什么想法吗?
答案 0 :(得分:14)
我们可以简单地允许无效的证书用于chrome中的开发目的。
这仅对Localhost有效
将此内容粘贴到您的Chrome地址栏中:
chrome:// flags /#allow-insecure-localhost
然后启用突出显示的文本:允许从本地主机加载的资源无效证书
答案 1 :(得分:6)
以下是使用KeyStore Explorer工具的说明。
我在创建证书时遇到的两件事情是:
如果没有这两件事,即使您已将自签名证书安装到MS-CAPI PKI信任存储区(作为"受信任的根权限),Chrome也会发出警告/错误。
以下是我使用的步骤。
答案 2 :(得分:2)
我在this之后解决了完全相同的问题。
问题似乎与证书的创建方式有关。
以下代码来自上述网站。
#!/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文件
[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文件
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names
[alt_names]
DNS.1 = localhost
答案 3 :(得分:2)
有一个很好的基于GUI的java实用程序,我用它来创建和操作所有PKI称为KeyStore Explorer的东西。比所有命令行选项容易得多:
答案 4 :(得分:0)
我是偶然发现的:如果您安装了Fiddler并使其在后台运行,则您的应用第一次运行时会打开一个弹出窗口,显示证书问题;如果您单击“是”,它将允许您的请求通过。请参见此https://www.telerik.com/forums/fiddler-certificate-error-bypass-question。
答案 5 :(得分:0)
打开 Chrome 浏览器
将以下链接放入浏览器地址栏中,然后按 Enter。
chrome://flags/#allow-insecure-localhost
选择“允许从本地主机加载的资源的无效证书”。禁用到启用。
希望您的问题会得到解决。谢谢