【问题标题】:ERR_INVALID_SIGNED_EXCHANGE error in Google ChromeGoogle Chrome 中的 ERR_INVALID_SIGNED_EXCHANGE 错误
【发布时间】:2020-08-19 07:34:38
【问题描述】:

我已经使用有效的 Let's Encrypt SSL 证书(来自 certbot)设置了我的简单网站。我的nginx config 非常简短。

网站在最新的 Firefox 中正确显示。它显示 404 页面,这对我来说没问题,应该可以按预期工作:404 页面。

如果我尝试使用谷歌浏览器,我会收到一个错误:

https://example.org/ 的网页可能暂时关闭或 可能已永久移至新网址。 ERR_INVALID_SIGNED_EXCHANGE

assume 认为 application/signed-exchange 标头可能会导致此问题。

这个标题是什么,我应该从响应中删除它吗?

请求

GET / HTTP/1.1
Host: example.org
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9,ru;q=0.8
DNT: 1
example.org example.org 

回应

HTTP/1.1 404 Not Found
Server: nginx
Date: Fri, 29 Mar 2019 12:05:49 GMT
Content-Type: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
Content-Length: 345
Connection: keep-alive

要解决什么问题?

【问题讨论】:

  • 服务器的响应中这是什么奇怪的Content-Type?它应该是单一类型,而不是类型的组合。看起来您的服务器只是反映了客户端发送为Accept 的内容,这是一种损坏的行为。根据this,这实际上可能是您问题的根源。
  • 如您所见,这是标准的 nginx 404 回复(配置文件链接在我的问题中)
  • @Croll 你设法解决了这个问题吗?如果是,请问如何?

标签: linux google-chrome ssl nginx lets-encrypt


【解决方案1】:

响应中的Content-Type 不正确。它应该是单一类型,as Steffen Ullrich said。对于 404 页面,我怀疑你想要 Content-Type: text/html

这可能是您的 nginx 配置所特有的。在我的服务器上,404 个页面有Content-Type: text/html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-03
    • 2018-06-25
    • 2017-07-21
    相关资源
    最近更新 更多