我已经为localhostCN创建了一个自签名的SSL证书。正如预期的那样,Firefox在最初抱怨后接受了这个证书。然而,Chrome和IE拒绝接受它,即使在将证书添加到Trusted Roots下的系统证书存储之后。尽管当我在Chrome的HTTPS弹出窗口中单击“查看证书信息”时,证书被列为正确安装,但它仍然坚称证书不可信。
我该怎么做才能让Chrome接受证书并停止抱怨?
我已经为localhostCN创建了一个自签名的SSL证书。正如预期的那样,Firefox在最初抱怨后接受了这个证书。然而,Chrome和IE拒绝接受它,即使在将证书添加到Trusted Roots下的系统证书存储之后。尽管当我在Chrome的HTTPS弹出窗口中单击“查看证书信息”时,证书被列为正确安装,但它仍然坚称证书不可信。
我该怎么做才能让Chrome接受证书并停止抱怨?
当前回答
我的解决方案和解释:
我有一个用IIS资源工具包工具SelfSSL.exe创建的自签名证书。在本地计算机上的证书列表中,我看到这个自签名证书只有一个用途:服务器身份验证。所以我创建了一个新的自签名证书,它有两个目的:服务器身份验证和客户端身份验证。现在Chrome不再抱怨了。
本文展示了许多生成自签名证书的方法。请注意,并非所有选项都允许您指定证书用途。我使用PowerShell的方式:
$cert = New-SelfSignedCertificate -certstorelocation cert:\localmachine\my -dnsname company.co.nz
注意:正如kellen Chrome的这个回答所述,它确实允许您设置证书的用途,但是IMO不能为证书添加新的用途,如果创建证书时没有考虑到这一点。
其他回答
2021 6月-Windows 10-Chrome v91(SIMPLE)
按照selfsignedcertificate.com上的证书生成说明进行操作:
示例域名:mydomain.local,请将其替换为您的域名。
要生成密钥,请执行以下操作:openssl genrsa-out mydomain.local.key 2048创建仅包含以下内容的配置文件mydomain.local.conf:[要求]区分名称=请求[桑]subjectAltName=DNS:mydomain.local注意:在subjectAltName中,您可以定义更多域(可选),如:subjectAltName=DNS:mydomain.local,DNS:*.mydomain.local,DNS:其他域.local,IP:192.168.1.10创建证书:openssl req-new-x509-key mydomain.local.key-out mydomain.local.crt-days 3650-subj/CN=mydomain.local-extensions SAN-config mydomain.local.conf将证书添加到受信任的根证书颁发机构右键单击mydomain.local.crt文件从上下文菜单中选择安装证书。在弹出窗口中选择本地机器。选择“将所有证书放置在以下存储中”。单击浏览。选择受信任的根证书颁发机构。单击“确定”、“下一步”、“完成”。重新启动Chrome。
在Windows 10上进行本地测试时,上面的答案对我没有帮助
https://localhost:<端口>。
然而,我找到了这个页面,指示要传递的另一个标志:
https://www.chromium.org/blink/serviceworker/service-worker-faq
如果您想在https://localhost使用自签名证书,请执行以下操作:$ ./chrome—允许不安全的本地主机https://localhost
这并没有消除红色警告,但它确实使我能够使用仅限https的功能,如服务工作者和网络推送通知。
您确定站点的地址与证书相同吗?我对Chrome和自签名证书也有同样的问题,但最后我发现它对证书上域名的验证非常挑剔(应该如此)。
Chrome没有自己的证书存储,而是使用Windows自己的证书。然而,Chrome不提供将证书导入商店的方法,因此您应该通过IE添加证书。
在Google Chrome中安装证书
在Internet Explorer中安装证书
还可以看看这两种不同的创建自签名证书的方法(我假设您使用的是您没有提到的IIS)。
如何在IIS 7中创建自签名证书
正如有人指出的,你需要重启所有的Chrome,而不仅仅是浏览器窗口。最快的方法是打开一个选项卡。。。
chrome://restart
截至2020年3月,在使用Chrome81的MacOSCatalina上,一旦您使用openssl创建了一个有效的证书,上述情况就会发生变化。
首先,我使用Safari浏览了我的网站,并单击了警告页面底部的链接,该链接允许我无论如何访问该网站。这将证书添加到我的Mac Keychain(即Keychain.app)。Safari将允许我查看该页面。Chrome显示证书是可信的,但不允许我查看该页面。我继续收到CERTIFICATE_INVALID错误。
在Keychain中,选择左下角窗格中的“所有项目”。然后搜索本地主机DNS名称(即myhost.example.com)。
双击证书。它将打开证书的编辑对话框。
将“使用此证书时”更改为“始终信任”
这完全违反直觉,因为SSL已经设置为Always Trust,可能是Safari在添加证书时设置的。Chrome只有在我将其全局更改为“始终信任”后才开始工作。当我把它换回来时,它停止了工作。