LocalHost上自签名证书上的Chrome NET :: ERR_CERT_AUTHORITY_INVALID错误

E.S*_*.S. 24 ssl google-chrome ssl-certificate

我正在尝试在我的本地PC上设置开发环境.由于生产网站支持HTTPS(这些日子不支持?),我想在localhost上也有这个.我觉得这很容易,但没有.

我有一个XAMP安装,并设置所有,所以我可以访问该网站.但是,每当我在本地访问网站上的任何页面时,我都会收到Chrome警告:

NET :: ERR_CERT_AUTHORITY_INVALID

我确实按照以下线程尝试解决它:

让Chrome接受自签名的localhost证书

我还使用正确的主题备用名称(SAN)部分创建了证书,基于此:

https://deliciousbrains.com/https-locally-without-browser-privacy-errors/

之后,我生成了CER或P7B文件并将其导入Chrome.我重新启动了Apache和Chrome.

我将证书放在受信任的根证书颁发机构中.不知何故,Chrome决定将其置于中级根证书颁发机构......

我使用的是Chrome 61,我在60年代也是如此.

所以不知怎的,我无法安装自签名证书,并继续得到这个警告,这基本上使得无法在localhost上进行开发......

我知道这种自签名并不完全值得信赖,但必须有一种离线开发的方法吗?从现在开始我们必须在线建立网站是没有意义的吗?...

有任何想法吗?

sha*_*aka 22

我们可以简单地允许在 chrome 中用于开发目的的无效证书。

这仅对本地主机有效

将此粘贴到您的 chrome 地址栏中:

铬://标志/#allow-insecure-localhost

然后启用突出显示的文本:允许从本地主机加载的资源无效证书

在此处输入图片说明

  • 我想这只有在 URL 为“https://localhost”时才有效,因为它不适用于“/etc/hosts”文件中指向“localhost”/“127.0.0.1”的域 (4认同)
  • 不,它不会解决 DNS 为“127.0.0.1”的域的问题 (2认同)

ato*_*m88 7

以下是使用KeyStore Explorer工具的说明.

我创建证书时我之前缺少的两件事是:

  • AKID(授权密钥标识符) - 选择创建时使用的"CN =".
  • 添加"基本约束"选项(不要选择"是CA")

如果没有这两件事,即使您已将自签名证书安装到MS-CAPI PKI信任库(作为"受信任的根权限"),Chrome也会发出警告/错误.

以下是我使用的步骤.

  1. 使用KSE的说明(KeyStore Explorer)
  2. 创建一个JKS
  3. 创建自签名证书
  4. 打开KeyStore Explorer
  5. 档案| 新的| JKS | 好
  6. 为您的JKS文件创建密码
  7. 档案| 另存为... | 输入你的密码
  8. 输入文件名| 好
  9. 工具| 生成密钥对
  10. 选择算法和密钥大小(即2048)| 好
  11. 选择有效期(即5年)
  12. 选择名称(书本图标)| 在名称字段中输入| 好
  13. 即"CN = localhost ......"
  14. 添加扩展(非常重要),这将确定它将是什么类型的证书以及如何使用它.此示例适用于带SSL的标准服务器证书.
  15. 添加密钥用法项
  16. 添加数字签名和密钥加密选项复选框
  17. 添加EKU(扩展密钥用法)选项
  18. 选择以下两个选项:
  19. TLS Web客户端身份验证
  20. TLS Web服务器身份验证
  21. 添加SAN(主题备用名称)
  22. 添加将使用此服务器的所有必需DNS名称和IP地址(如果适用).(重复所有所需的值)(例如127.0.0.1和localhost(或)
  23. 它完成后会看起来像这样
  24. 完成后,您将看到列出了OID(对象标识符)的所有字段 好的 好
  25. 添加AKID(授权密钥标识符)
  26. 添加扩展程序"+"
  27. 添加扩展类型| 授权密钥标识符
  28. 选择您在上面创建的CN的授权证书颁发者(.eg"CN = localhost ...")| 好
  29. 添加"基本约束"(不要检查"主题是CA")
  30. 当你完成后,你会看到列出的这些:点击"确定"
  31. 注意:Chrome浏览器需要基本约束和AKID(授权密钥标识符)才能将自签名证书验证为可信证书.
  32. 否则,即使您明确地将此证书添加到MS-CAPI受信任的根证书,您也会看到警告或错误消息.
  33. 输入要使用的密钥对名称的别名
  34. 输入私钥对的密码
  35. *注意:此密码必须与JKS文件密钥库密码相同,否则Java在尝试使用此证书时可能会无声地失败.
  36. 您应该看到一条表示成功的消息.| 好
  37. 然后,保存文件| 保存

  • 如果您计划在网络服务器上使用证书,则还必须导出私钥。右键->导出->导出私钥,选择OpenSSL,取消选中加密,选择文件位置,导出。 (2认同)
  • 这刚刚起作用了。创建后,我下载了证书并将其添加到 chrome 中。现在不再出现警告。 (2认同)
  • 终于找到在firefox中使用它的方法了。需要转到 about:config 并将配置 security.enterprise_roots.enabled 更改为 true。 (2认同)

Tem*_*ary 5

我固定我完全一样的问题下面这个

问题似乎在于创建证书的方式。

下面的代码来自上面的站点。

#!/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
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

v3.ext 文件

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

[alt_names]
DNS.1 = localhost
Run Code Online (Sandbox Code Playgroud)

  • 你能补充一些细节吗?你导入了什么到chrome?我做了同样的步骤,但仍然面临错误 (4认同)