我已经为localhostCN创建了一个自签名的SSL证书。正如预期的那样,Firefox在最初抱怨后接受了这个证书。然而,Chrome和IE拒绝接受它,即使在将证书添加到Trusted Roots下的系统证书存储之后。尽管当我在Chrome的HTTPS弹出窗口中单击“查看证书信息”时,证书被列为正确安装,但它仍然坚称证书不可信。

我该怎么做才能让Chrome接受证书并停止抱怨?


当前回答

我也遇到了同样的问题:我已将证书安装到Windows的Trusted Root Authorities存储中,但Chrome仍然拒绝证书,错误为ERR_CERT_COMMON_NAME_INVALID。请注意,当证书未正确安装在存储中时,错误为ERR_CERT_AUTHORITY_INVALID。

正如错误名称、此注释和此问题所暗示的,问题在于证书中声明的域名。当生成证书时提示输入“CommonName”时,我必须输入用于访问站点的域名(在我的情况下是localhost)。我使用重新启动了Chromechrome://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只有在我将其全局更改为“始终信任”后才开始工作。当我把它换回来时,它停止了工作。

这对我有用。请参见:http://www.robpeck.com/2010/10/google-chrome-mac-os-x-and-self-signed-ssl-certificates/#.Vcy8_ZNVhBc

在地址栏中,单击带有X的小锁。这将显示一个小信息屏幕。单击显示“证书信息”的按钮

单击并将图像拖到桌面。它看起来像一个小证书。

双击它。这将打开Keychain Access实用程序。输入密码以解锁。

确保将证书添加到系统密钥链,而不是登录密钥链。单击“始终信任”,即使这似乎没有任何作用。

添加后,双击它。您可能需要再次进行身份验证。

展开“信任”部分。

“使用此证书时,”设置为“始终信任”

当单击URL旁边的小划掉的锁定图标时,您将看到一个如下所示的框:

单击证书信息链接后,您将看到以下对话框:

它告诉哪个证书存储是正确的,它是受信任的根证书颁发机构存储。

您可以使用其他答案中列出的方法之一将证书添加到该存储,也可以使用:

certutil -addstore -user "ROOT" cert.pem

ROOT是前面提到的证书存储的内部名称。cert.pem是自签名证书的名称。

从Chrome 58+开始,由于缺少SAN,我开始在macOS上获取证书错误。下面是如何再次获得地址栏上的绿色锁。

使用以下命令生成新证书:openssl请求\-新密钥rsa:2048\-2009年5月\-节点\-keyout服务器.key\-新的\-输出服务器.crt\-subj/CN=*.domain.dev\-请求SAN\-扩展SAN\-配置<(cat/System/Library/OpenSSL/OpenSSL.cnf\<(printf'[SAN]\nobjectAltName=DNS:*.domain.dev'))\-沙256\-720天将server.crt导入KeyChain,然后双击证书,展开“信任”,然后选择“始终信任”

刷新页面https://domain.dev在Google Chrome中,绿色锁又回来了。

对于MacOS上的Chrome,如果您准备了证书:

退出Chrome(cmd+Q)。启动Keychain Access应用程序并打开“证书”类别。将证书文件拖到Keychain Access窗口上,然后键入证书文件的密码。双击证书并展开“信任”列表。在“使用此证书时”行中,选择“始终信任”关闭此内容并键入密码。启动Chrome并清除所有缓存。检查一切是否正常。