【发布时间】: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