我已经为localhostCN创建了一个自签名的SSL证书。正如预期的那样,Firefox在最初抱怨后接受了这个证书。然而,Chrome和IE拒绝接受它,即使在将证书添加到Trusted Roots下的系统证书存储之后。尽管当我在Chrome的HTTPS弹出窗口中单击“查看证书信息”时,证书被列为正确安装,但它仍然坚称证书不可信。
我该怎么做才能让Chrome接受证书并停止抱怨?
我已经为localhostCN创建了一个自签名的SSL证书。正如预期的那样,Firefox在最初抱怨后接受了这个证书。然而,Chrome和IE拒绝接受它,即使在将证书添加到Trusted Roots下的系统证书存储之后。尽管当我在Chrome的HTTPS弹出窗口中单击“查看证书信息”时,证书被列为正确安装,但它仍然坚称证书不可信。
我该怎么做才能让Chrome接受证书并停止抱怨?
当前回答
修复Windows上的Chrome。
首先,您需要导出证书。
在浏览器中找到url。url的“https”段将为用红线划掉,左侧将有一个锁定符号。右键单击划掉的“https”段。您将看到一个包含各种信息的信息窗口单击“详细信息”。导出证书,按照说明接受默认设置。
要导入
转到Chrome设置单击“高级设置”在HTTPS/SSL下单击“管理证书”转到“受信任的根证书颁发机构”单击“导入”将出现一个弹出窗口,询问您是否要安装此证书。单击“是”。
其他回答
更新11/2017:这个答案可能不适用于大多数较新版本的Chrome。更新02/2016:Mac用户的更好说明可以在这里找到。
在要添加的站点上,右键单击地址栏中的红色锁定图标:单击标记为“连接”的选项卡,然后单击“证书信息”单击“详细信息”选项卡,然后单击“复制到文件…”按钮。。。。这将打开证书导出向导,单击下一步进入导出文件格式屏幕。选择DER编码二进制X.509(.CER),单击“下一步”单击浏览。。。并将文件保存到计算机。给它起个描述性的名字。单击下一步,然后单击完成。打开Chrome设置,滚动到底部,然后单击显示高级设置。。。在HTTPS/SSL下,单击管理证书。。。单击受信任的根证书颁发机构选项卡,然后单击导入。。。按钮这将打开证书导入向导。单击“下一步”进入“要导入的文件”屏幕。单击浏览。。。并选择先前保存的证书文件,然后单击“下一步”。选择将所有证书放置在以下存储中。所选存储应为受信任的根证书颁发机构。如果不是,请单击浏览。。。然后选择它。单击“下一步”并完成单击安全警告上的“是”。重新启动Chrome。
对于测试环境
在启动chrome时,可以使用--ignore证书错误作为命令行参数(在Ubuntu上使用28.0.1500.52版本)。
这将导致它忽略错误并在没有警告的情况下连接。如果您已经运行了一个版本的chrome,则需要在从命令行重新启动之前关闭它,否则它将打开一个新窗口,但忽略参数。
我将Intellij配置为在进行调试时以这种方式启动chrome,因为测试服务器从来没有有效的证书。
不过,我不建议像这样正常浏览,因为证书检查是一项重要的安全功能,但这可能对某些人有所帮助。
我的解决方案和解释:
我有一个用IIS资源工具包工具SelfSSL.exe创建的自签名证书。在本地计算机上的证书列表中,我看到这个自签名证书只有一个用途:服务器身份验证。所以我创建了一个新的自签名证书,它有两个目的:服务器身份验证和客户端身份验证。现在Chrome不再抱怨了。
本文展示了许多生成自签名证书的方法。请注意,并非所有选项都允许您指定证书用途。我使用PowerShell的方式:
$cert = New-SelfSignedCertificate -certstorelocation cert:\localmachine\my -dnsname company.co.nz
注意:正如kellen Chrome的这个回答所述,它确实允许您设置证书的用途,但是IMO不能为证书添加新的用途,如果创建证书时没有考虑到这一点。
正如有人指出的,你需要重启所有的Chrome,而不仅仅是浏览器窗口。最快的方法是打开一个选项卡。。。
chrome://restart
mac/osx上的SSL/HTTPS localhost修复程序:
尝试打开https localhost环境时,单击地址栏中带有十字的红色锁。将打开一个窗口,其中包含有关证书的一些信息。单击“详细信息”信息窗口chrome Developer工具在“安全”选项卡上打开。单击查看证书。证书映像将其添加到您的“System”钥匙链(而不是默认选择的“login”钥匙链)。再次打开钥匙链并找到证书。点击它,确保你“信任”所有人。重新启动chrome,它应该可以工作。