sim*_*mon 8 apache-2.4 hsts ubuntu-18.04
我已经使用 Ubuntu 18.04 设置了一个 Vagrant 框并安装了 Apache 2.4.29。我创建并启用了一个新的 conf 文件,如下所示:
<VirtualHost *:80>
ServerName django.dev
ServerAlias www.django.dev
ServerAdmin webmaster@localhost
DocumentRoot /var/www/
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
出于某种原因,当我尝试调用 django.dev 时,apache 以 HSTS 标头响应:
我不知道这是从哪里来的。在 apache2.conf 和 000-default.conf 中都没有设置这样的标头,我什至没有启用 mod_ssl。
奇怪的是,如果直接调用 IP,一切都按预期进行。如果我 ping django.dev,它会解析为完全相同的 IP。
有谁知道我可以如何或在哪里禁用 HSTS?我不知所措,已经浪费了几个小时试图解决这个问题。
Esa*_*nen 11
HSTS 策略由浏览器缓存max-age指令中指定的秒数( RFC 6797, 6.1.1 )。从 Web 服务器配置中删除标头不会从缓存中删除策略(也不会从预加载列表中删除,如果提交给一个列表),因此它会继续307 Internal Redirect在每个已经缓存策略的浏览器上导致s。
只有给定的 HSTS 主机可以更新或可以导致删除其发布的 HSTS 策略。它通过
Strict-Transport-Security向 UA发送带有策略持续时间和子域适用性的新值的 HTTP 响应头字段来实现这一点 。因此,UA 代表 HSTS 主机缓存“最新”的 HSTS 策略信息。指定零持续时间通知 UA 删除该 HSTS 主机的 HSTS 策略(包括任何断言的 includeSubDomains 指令)。
因此,删除 HSTS 策略的唯一方法是设置 HSTS 标头的持续时间为零,并且浏览器还必须在安全连接上看到此标头,没有任何 TLS 错误或警告 ( 2.2 )。
<VirtualHost *:443>
. . .
Header always set Strict-Transport-Security "max-age=0"
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
奇怪的是,如果直接调用 IP,一切都按预期进行。
这一点也不奇怪。如附录 A 所述,
- HSTS 主机仅通过域名识别——不包括所有形式的显式 IP 地址识别。这是为了简化,也是为了认识到使用直接 IP 地址识别与基于 PKI 的安全性相关的各种问题。
.dev如果这实际上是一个.dev域,则无法禁用 HSTS。
您的安全是我们的首要任务。这 。
dev顶级域包含在 HSTS 预加载列表中,这使得到 .dev网站和页面,无需单独的 HSTS 注册或配置。安全性是内置的。
| 归档时间: |
|
| 查看次数: |
5225 次 |
| 最近记录: |