Google Chrome浏览器中的“导入证书时私钥丢失或无效”


25

我想在https localhost上测试我的Web应用程序。不幸的是,似乎无法从Chrome中删除证书警告。首先,我生成了这样的证书:

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/localhost-selfsigned.key -out /etc/ssl/certs/localhost-selfsigned.crt

然后,我想将其添加到Chrome,设置>高级>管理证书->导入。我尝试导入之前生成的.crt文件,我得到的是:

证书导入错误:此客户端证书的私钥丢失或无效。

我用谷歌搜索,但没有发现任何帮助。

我也尝试过启用allow-insecure-localhost标志并使用打开chrome,--ignore-certificate-errors但它仍显示警告和损坏的https

还有其他方法还是我对证书做错了?


您还导入了/etc/ssl/private/localhost-selfsigned.key文件吗?那是私钥。
Zoredache

1
浏览器需要公钥,而不是私钥。
Arjan

2
通常,您将创建一个自签名服务器证书,并将其安装在您要通过其提供Web应用程序的HTTP服务器软件中。客户端(用户)安装在Web浏览器证书被用来当登录到Web应用程序,但它是非常罕见的,以验证用户身份。大多数网站/应用使用用户名/密码身份验证,而不是用户/客户端证书。
Spiff's

您可以使用此证书通过https提供内容,以及从浏览器导出内容时的外观吗?内容应相同。
cghislai

1
另外,也许您是从错误的选项卡导入的。尝试在单击导入按钮之前切换到服务器选项卡
cghislai

Answers:


29

我认为您可能要尝试将其添加到错误的证书存储中。如果您尝试将其添加到“您的证书”下,那么您将会遇到麻烦。该选项卡用于添加身份证书。您的浏览器向服务器提供的内容以建立浏览器的身份。

根据您的描述,我认为您想做的是您希望浏览器信任将在服务器端出现的自签名证书。如果是这种情况,则需要将其添加到“权限”标签中。


1
不适用于我
Alexandre Bourlier

3
从Chrome v64开始可以使用。如@Erik指出的那样,您可以在“权限”选项卡下导入.crt。注意:FireFox不会给您带来麻烦
lasec0203

2
权限标签用于CA证书。非CA证​​书应该位于“服务器”选项卡上。例如,尽管您不能在Chromium 65.0.3325.162中手动添加非CA证书。
x-yuri

1
通过“授权”标签导入解决了我的问题。
K-Gun

FireFox给了我同样的忙碌,但是没有任何效果。
Zap
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.