保护 Web 服务器免受 Safari 中的 MITM 攻击

Securing web server against MITM attack in Safari

我一直在寻找一种方法来确保我的 Web 服务器能够抵御中间人攻击。 Google Chrome 和 Firefox 似乎确实可以阻止对我的服务器的请求,即使我 select 在安全警告后继续前进。我正在通过使用 Charles Proxy 拦截 Https 流量来测试这个,而无需信任我 Mac.

上的 Charles Cert

当我 运行 使用 Safari 进行相同的测试时,如果我选择忽略安全警告,它会让我通过,我希望一定数量的用户这样做。所以似乎需要更多配置来锁定 Safari 流量。我知道这是可能的,因为当尝试使用相同的场景导航到 github.com 时,我收到以下消息:

有谁知道 GitHub 正在做什么来阻止不受信任的连接上的 Safari 流量?

Looks like Safari is supporting HSTS 并且 github 正在使用它。他们的 HTTP 响应包含以下 header:

Strict-Transport-Security:max-age=31536000; includeSubdomains; preload

这样一来,支持 HSTS 的浏览器就知道在可预见的时间内只能使用 https 访问该站点,任何仅使用 http 的尝试都会由浏览器自动升级。

除了仅在首次访问网站后才有效的基本 HSTS github 之外,还添加了 preload 指令。这告诉浏览器制造商,github 喜欢包含在浏览器附带的预加载 HSTS 列表中,这样即使用户以前从未访问过该站点,浏览器也会应用 HSTS。有关详细信息,请参阅 HSTS Preloading