导入自签名证书时“不是证书颁发机构”

Ste*_*ant 8 google-chrome certificate ssl ubuntu

我为本地开发创建了一个自签名 SSL 证书。访问页面时,出现NET::ERR_CERT_AUTHORITY_INVALID错误。但是当我尝试将它导入 Chrome ( chrome://settings/certificates ) 时,它失败了:

该文件包含一个未导入的证书:

  • mylocalwebapp.dev:不是证书颁发机构

这是我为创建证书而运行的命令:

openssl req -new -x509 -nodes \
 -extensions SAN \
 -reqexts SAN  \
 -days 365 \
 -newkey rsa:2048 \
 -keyout /etc/ssl/private/apache-selfsigned.key \
 -out /etc/ssl/certs/apache-selfsigned.crt \
 -config <(cat /etc/ssl/openssl.cnf <(printf '[SAN]\nsubjectAltName=DNS:mylocalwebapp.dev'))
Run Code Online (Sandbox Code Playgroud)

我添加了 SAN 选项,因为从版本 58 开始,Chrome 不接受没有 SAN 的选项。它适用于 Chrome 57,并且仍然适用于 Firefox。

如何让我的自签名证书在 Ubuntu 17.04 上的 Chrome 58 上运行?

tdg*_*dg5 10

只是为了确保我们覆盖了我们的基地……您是否尝试过此处列出的流程?/sf/ask/530635591/

这曾经对我有用,但截至今天早上,在更新到 Chrome 58.0.3029.81 后,我还在控制台中收到以下错误,用于用于过去在 Ubuntu 16.04 上工作的自签名证书:

Certificate Error
There are issues with the site's certificate chain (net::ERR_CERT_AUTHORITY_INVALID).
Run Code Online (Sandbox Code Playgroud)

编辑:

我刚刚使用上面引用的链接中的一种方法取得了成功。它完全绕过了 Chrome,因为 Chrome 似乎发生了一些变化,并且它不再正常工作了。

使用 OpenSSL 客户端转储证书(可能没有必要,但如果您想非常彻底):

$ echo QUIT | openssl s_client -connect $DOMAIN_TO_FETCH_FROM:443 | sed -ne '/BEGIN CERT/,/END CERT/p' > my-cert
Run Code Online (Sandbox Code Playgroud)

使用certutil. 如果您没有使用 openssl 转储您的证书,请替换my-cert为任何合适的文件名:

$ certutil -d sql:$HOME/.pki/nssdb -A -t "P,," -n my-cert -i my-cert
Run Code Online (Sandbox Code Playgroud)

检查证书的安装certutil(如果您觉得如此):

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

# Certificate Nickname                                         Trust Attributes
#                                                              SSL,S/MIME,JAR/XPI
#
# my-cert                                                      P,,  
Run Code Online (Sandbox Code Playgroud)

完全关闭并重新启动Chrome,也许你会发现成功。在 58 和 59-beta 上为我工作。

  • 在 Chrome 63 上工作。我只是按照本教程的 EXPORT 部分导出了证书:/sf/answers/1055362171/ 然后使用 `certutil -d sql:$HOME/.pki/nssdb 导入它 - A -t "P,," -n my-cert -i my-cert` (2认同)