让Chrome接受自签的本地主机证书

我为localhost CN创建了一个自签名的SSL证书。火狐浏览器在最初抱怨后接受了这个证书,正如预期的那样。然而,Chrome和IE拒绝接受它,甚至在将该证书添加到受信任根下的系统证书库后也是如此。尽管当我在Chrome的HTTPS弹出窗口点击 "查看证书信息 "时,该证书被列为正确安装,但它仍然坚持认为该证书不可信。

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

在Mac上,你可以使用钥匙串访问工具,将自签名证书添加到系统钥匙串中,然后Chrome就会接受它。我在这里找到了分步骤的说明。

谷歌浏览器、Mac OS X和自签SSL证书

基本上。

1.双击带X的锁形图标,并将证书图标拖放到桌面上。 1.打开这个文件(以.cer为扩展名结尾);这将打开钥匙串应用程序,允许你批准该证书。

评论(15)

Linux

如果你使用的是Linux,你也可以关注这个官方的wiki页面。

  • [在Linux上配置SSL证书][1]。
  • [NSS Shared DB And LINUX][2]。
  • [NSS Shared DB Howto][3]。

基本上。

  • 点击带X的锁定图标。
  • 选择证书信息
  • 转到细节标签
  • 点击 "导出"...(保存为一个文件)

现在,以下命令将添加证书(其中YOUR_FILE是你导出的文件)。

certutil -d sql:$HOME/.pki/nssdb -A -t "P,," -n YOUR_FILE -i YOUR_FILE

要列出你的所有证书,请运行以下命令。

certutil -d sql:$HOME/.pki/nssdb -L

如果还是不行,你可能受到这个错误的影响。 [问题55050:Ubuntu SSL错误8179][4]

P.S. 请确保你有libnss3-tools,才能使用上述命令。

如果你没有,请通过以下方式安装它。

sudo apt-get install libnss3-tools # on Ubuntu
sudo yum install nss-tools # on Fedora, Red Hat, etc.

作为奖励,你可以使用以下方便的脚本。

$ cat add_cert.sh
certutil -d sql:$HOME/.pki/nssdb -A -t "P,," -n $1 -i $1
$ cat list_cert.sh
certutil -d sql:$HOME/.pki/nssdb -L # add '-h all' to see all built-in certs
$ cat download_cert.sh
echo QUIT | openssl s_client -connect $1:443 | sed -ne '/BEGIN CERT/,/END CERT/p'

使用方法。

add_cert.sh [FILE]
list_cert.sh
download_cert.sh [DOMAIN]

疑难解答

评论(2)

你确定网站提供的地址与证书上的地址相同吗?我在使用Chrome浏览器和自签名证书时遇到了同样的问题,但最后我发现它对证书上的域名验证非常挑剔(应该如此)。

Chrome没有自己的证书库,而是使用Window自己的。然而,Chrome没有提供将证书导入存储的方法,所以你应该通过IE添加它们。

在谷歌浏览器中安装证书

在IE浏览器中安装证书

还可以看看这个,了解一些创建自签名证书的不同方法(我假设你使用的是IIS,因为你没有提到)。

如何在IIS 7中创建自签名的证书

评论(4)