我已经为localhostCN创建了一个自签名的SSL证书。正如预期的那样,Firefox在最初抱怨后接受了这个证书。然而,Chrome和IE拒绝接受它,即使在将证书添加到Trusted Roots下的系统证书存储之后。尽管当我在Chrome的HTTPS弹出窗口中单击“查看证书信息”时,证书被列为正确安装,但它仍然坚称证书不可信。
我该怎么做才能让Chrome接受证书并停止抱怨?
我已经为localhostCN创建了一个自签名的SSL证书。正如预期的那样,Firefox在最初抱怨后接受了这个证书。然而,Chrome和IE拒绝接受它,即使在将证书添加到Trusted Roots下的系统证书存储之后。尽管当我在Chrome的HTTPS弹出窗口中单击“查看证书信息”时,证书被列为正确安装,但它仍然坚称证书不可信。
我该怎么做才能让Chrome接受证书并停止抱怨?
当前回答
在Mac上,您可以使用Keychain Access实用程序将自签名证书添加到系统密钥链,然后Chrome将接受它。我在这里找到了分步说明:
Google Chrome、Mac OS X和自签名SSL证书
基本上:
双击带有X的锁定图标并将证书图标拖放到桌面,打开此文件(以.cer扩展名结尾);这将打开允许您批准证书的密钥链应用程序。
其他回答
对于测试环境
在启动chrome时,可以使用--ignore证书错误作为命令行参数(在Ubuntu上使用28.0.1500.52版本)。
这将导致它忽略错误并在没有警告的情况下连接。如果您已经运行了一个版本的chrome,则需要在从命令行重新启动之前关闭它,否则它将打开一个新窗口,但忽略参数。
我将Intellij配置为在进行调试时以这种方式启动chrome,因为测试服务器从来没有有效的证书。
不过,我不建议像这样正常浏览,因为证书检查是一项重要的安全功能,但这可能对某些人有所帮助。
截至2020年3月,在使用Chrome81的MacOSCatalina上,一旦您使用openssl创建了一个有效的证书,上述情况就会发生变化。
首先,我使用Safari浏览了我的网站,并单击了警告页面底部的链接,该链接允许我无论如何访问该网站。这将证书添加到我的Mac Keychain(即Keychain.app)。Safari将允许我查看该页面。Chrome显示证书是可信的,但不允许我查看该页面。我继续收到CERTIFICATE_INVALID错误。
在Keychain中,选择左下角窗格中的“所有项目”。然后搜索本地主机DNS名称(即myhost.example.com)。
双击证书。它将打开证书的编辑对话框。
将“使用此证书时”更改为“始终信任”
这完全违反直觉,因为SSL已经设置为Always Trust,可能是Safari在添加证书时设置的。Chrome只有在我将其全局更改为“始终信任”后才开始工作。当我把它换回来时,它停止了工作。
我该怎么做才能让Chrome接受证书并停止抱怨?
您应该使用以下项创建PKI:;
自签名根CA。子/中间证书[由根CA签署]。正常/最终实体证书[由根CA或子CA签名]commonName或subjectAltName(SAN)作为“localhost”。还包括https://localhost/作为SAN中的URI。将该根CA作为“受信任的根证书颁发机构”导入/安装到Windows操作系统中。因为你提到了IE:Google Chrome在寻找证书链时使用了相同的资源。将该最终实体证书安装为您的web服务器证书,它将停止抱怨该错误消息。
希望这有帮助。
通过此方法允许不安全的本地主机正常工作chrome://flags/#allow-不安全的本地主机
只需要将开发主机名创建为xxx.localhost。
假设您使用的是Mac OSX,您也可以在Safari中打开相关的URL;说https://localhost:8080/css/app.css,允许证书。重新启动Chrome,它就会工作。