首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >[Firefox和nginx]:Firefox似乎缓存并传递错误子域的内容

[Firefox和nginx]:Firefox似乎缓存并传递错误子域的内容
EN

Server Fault用户
提问于 2021-02-19 15:22:23
回答 1查看 415关注 0票数 1

目前,我在不同的子域上运行不同的服务组合:

a.example.com: nginx代理背后的Docker容器

b.example.com: nginx网站

c.example.com: nginx代理背后的Docker容器

a和c共享相同的ipv4,b有自己的ipv4,而a、b和c都使用不同的ipv6地址。它们都是SSL安全的,由nginx (通过301)重定向到ssl安全站点的非ssl通信量。

所有这些都是通过HSTS (没有设置可选的"includeSubdomains“)来保护的。

现在,为了我的问题

  1. 通过firefox打开https://a.example.com -> works
  2. 通过firefox打开https://b.example.com -> works
  3. 通过火狐打开https://a.example.com ->不起作用,而是显示b.example.com。似乎火狐会以某种方式缓存b.example.com。如果我按下shift+reload,火狐就会加载正确的a.example.com站点。

这是firefox特有的问题。上面的工作完美的Chrome,Vivaldi,MS边缘(铬基)。它甚至可以和wget一起工作。我不知道是什么原因导致firefox从它的存储中抓取错误的站点。

如有任何帮助,敬请见谅。

EN

回答 1

Server Fault用户

回答已采纳

发布于 2021-02-20 16:18:34

如果有人遇到同样的问题:这是firefox,这里有更多的细节:https://matthias.wuerfl.com/firefox-http2-ipv6-pitfall/

摘要:

条件

  • 两个(或更多)子域(相同域)
  • …共享公共通配符ssl证书。
  • 在同一个主机上(相同的IPv4 4-地址)
  • 但是有不同的IPv6 6地址
  • client: Firefox (只有Firefox有这种行为)
  • 使用HTTP/2
  • 使用IPv6

预期行为:

  • 地址栏中的foo.example.com显示foo.example.com
  • 地址栏中的bar.example.com显示bar.example.com

看见的行为

对第二个主机(bar)的请求转到第一个主机(foo)。

解释

使用HTTP/2,Firefox共享到tcp服务器的连接(“池”),通过省略握手和tcp慢启动来加快页面加载速度。Firefox不是通过查看主机名,而是通过查看IPv4 4地址和证书来确定哪些连接可以池在一起。如果第二个主机( bar )的IPv4地址( bar )与第一个主机( foo )的IPv4 4地址匹配,而用于foo的证书也与bar匹配,则对bar重用到foo的连接。

问题

当有人连接到foo的IPv6 6入口时,可能不会将when服务器配置为显示bar的内容。对IPv6不再需要基于名称的虚拟主机(像我一样)这一事实感到高兴的were服务器管理员可能在错误的假设下配置了他们的were服务器,即如果为主机名foo发布了IPv6地址,到该主机的传入连接将转到该IP地址。

Firefox的行为是非常出乎意料的--或者根本就错了。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1054282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档