【问题标题】:NET::ERR_CERT_AUTHORITY_INVALID in Chrome not incognito and Firefox locally with valid certs on nginxNET::ERR_CERT_AUTHORITY_INVALID 在 Chrome 中不是隐身和 Firefox 在本地使用 nginx 上的有效证书
【发布时间】:2020-02-05 11:08:08
【问题描述】:

几周前,我们对我们的 cookie 实施了 SameSite cookie 政策。如果我想在本地开发,我需要一个证书来获取 cookie。

我们正在运行一个 Node express 服务器,它被反向代理到我们添加证书的 nginx 配置。

# Server configuration
#
server {
    listen 443;
    server_name test-local.ad.ourdomain.com;
    ssl_certificate           /home/myname/.certs/ourcert.crt;
    ssl_certificate_key       /home/myname/.certs/ourkey.rsa;
    ssl on;
    ssl_session_cache  builtin:1000  shared:SSL:10m;
    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
    ssl_prefer_server_ciphers on;
    location / {
        proxy_set_header        Host $host;
        proxy_set_header        X-Real-IP $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header        X-Forwarded-Proto $scheme;
        proxy_pass          http://localhost:9090;
        proxy_read_timeout  90;
        proxy_redirect      http://localhost:9090 https://test-local.ad.ourdomain.com;
    }
}

现在到奇怪的部分。我们今天更新到 Chrome 80,突然之间我遇到了一个 HSTS 问题。即使我愿意,我也无法访问网站(没有选择加入的可能性)。我试图在 chrome://internals/#hsts 中清除它,这很有效。但是,我仍然得到NET::ERR_CERT_AUTHORITY_INVALID,但我现在可以选择替代方案。

从 Chrome 隐身模式访问它就像一个魅力,没有问题。与 Firefox 相同,也没有问题。它说证书有效,绿色且漂亮。也在这里查看:https://www.sslshopper.com/certificate-decoder.html 及其 100% 绿色。

我正在使用 Regolith 运行 Ubuntu 19.10。

我的同事使用相同的证书,也是 Chrome 80,但他们运行的是 Mac,Chrome 没有问题。

有什么想法吗?我试图清除浏览器设置,没有改变。

【问题讨论】:

  • 同样的问题,在我们的一个面向公众的网站上。常见细节:Chrome 80、Ubuntu 18.04。相同的症状:Firefox 正常,Chrome 隐身正常,Chrome 坏。您的以下解决方案指出我们存在链接错误配置;等待 IT 解决问题。谢谢。
  • 我很高兴它有帮助。这一定是 Ubuntu 上的 Chrome 80 中的一个错误导致的。还是他们很早就引入了更严格的安全设置?
  • 我查看了他们的 git 日志并没有看到任何具体内容。这看起来像以前被忽略的问题现在不被忽略的问题类别。可能是其他一些变化的副作用。不知道为什么它只在 Ubuntu(或 linux)上。

标签: google-chrome ssl nginx


【解决方案1】:

我有一些好消息!

我们在我们的云开发环境中使用相同的证书(但是,它们是 pfx 形式的)。如前所述,我在本地运行 Linux,我必须将 pfx 转换为 RSA 文件和 CRT 文件。

我在这个站点上输入了我们的开发域:https://whatsmychaincert.com/,它下载了一个 *.chain.crt 文件。连同我的旧 crt 文件和这个命令:

cat example.com.crt example.com.chain.crt > example.com.chained.crt

然后我在 Nginx 中引用了 .chained.crt 文件。

现在 Chrome 接受我的本地安全网页。

【讨论】:

    【解决方案2】:

    我们遇到了同样的问题,并在petur 's solution. 之后修复了它

    【讨论】:

    • 您应该考虑支持我的回答并发表评论。然而这是错误的。
    • 对不起@petur,我不被允许评论你的回答。只是想确认一下,我意识到我的答案不是很清楚,希望是现在。另外,我赞成你的回答。
    猜你喜欢
    • 2015-03-09
    • 2015-08-02
    • 2018-03-03
    • 2019-03-16
    • 2017-08-10
    • 1970-01-01
    • 2016-01-31
    • 2017-07-06
    • 2021-12-14
    相关资源
    最近更新 更多