HTTP 标头说 HTTPS 可用?

0 https apache-2.4

服务器是否可以以“普通”HTTP 模式发送标准标头,以提示浏览器 HTTPS 可用并推荐使用?

我已经使用 HSTS 机制告诉浏览器不要切换回 HTTP,但它们仅在已经建立安全连接时才有效。目前我使用 Apache 中的 Rewrite 内容使客户端使用 HTTPS,但我想要一个不那么强制的替代方案。

use*_*ser 5

为了回答所提出的具体问题,实际上有一个关于您想要的东西的提案,即HTTP 工作组提出HTTP 替代服务标准。就在几个月前,即 2016 年 5 月 3 日,它以当前形式发布,当前的互联网草案将于 2016 年 11 月 4 日到期。

鉴于它有多新,我希望 UA 支持充其量是非常参差不齐的。(Mark Nottingham 声称支持已添加到 Firefox 和 Chrome,但没有提供任何版本号。)此外,它意味着 UA 可以解释,不一定由用户做出选择。

在更一般的层面上,我认为您必须考虑为什么您不想“强制”UA 使用 HTTPS。是不是因为HTTPS的性能成本?(提示:现在完全可以忽略不计,特别是如果您还能够实现 HTTP/2。)是不是因为某些客户端可能无法使用加密?(提示:如果这对你来说真的是一个很大的用例,那么支持未加密的 TLS 密码套件。我不建议这样做,但它在技术上是可能的,就像驾驶你的车掉下悬崖一样技术上可行。至少这样,你应该获得 HTTPS 的真实性保证,但不是机密性。)是不是因为您的客户端不会说 SNI?(然后考虑为那个非常重要的网站分配一个 IP 地址,以支持停留在过时 5-10 年的 Web 浏览器上的客户端。)

即使您在网站上没有任何“秘密”或关心 Google 排名的小幅提升,强制使用 HTTPS 也有几个非常实际的好处

如果您愿意,您始终可以使用 HTTP 307响应将客户端从 HTTP 站点临时重定向到 HTTPS 站点,但是将临时重定向到 HTTPS 的临时重定向与 HSTS 结合起来在某种程度上是失败的。

鉴于您已经在使用 HSTS,我想说只需设置一个从 HTTP 虚拟主机到 HTTPS 虚拟主机的 HTTP 301永久重定向,然后就可以了。这些天几乎没有理由不这样做。

  • @RobertL 如果您正在处理物联网设备,也就是廉价制造的永不更新的设备,只要好到足以让客户付款,那么我认为您还有其他问题。 (2认同)