- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试在我的服务器上配置 HSTS。我注意到,如果我通过初始未加密的 HTTP 连接发送 HSTS header ,SSLLabs.com 上的测试会告诉我 HSTS 已启用。然而,这违反了根据 RFC-6797 第 7.2 节的 HSTS 规范,该规范明确规定您不应通过未加密的连接发送此 header 。
另一方面,如果我的服务器仅在执行从 HTTP 到 HTTPS 的 302 重定向后才发送 HSTS header ,这正是官方 HSTS 规范所说的你应该做的,那么 SSL Labs 不会承认我有 HSTS启用。
那么我在这里缺少什么?执行此操作的实际正确方法是什么?
如果你想看看我在说什么,有问题的网站是nightowlcircusarts.com
您可以通过以下 bash 命令使用 curl 查看未加密的 header :
curl -I http://www.nightowlcircusarts.com/
或者将 http 更改为 https 以查看加密的 header :
curl -I https://www.nightowlcircusarts.com/
目前,我将它配置为仅通过 TLS 发送该 header ,而不是没有它,正如 HSTS 规范所说的那样。但是您会看到 SSL Labs 测试仍然说我没有启用 HSTS: https://www.ssllabs.com/ssltest/analyze.html?d=nightowlcircusarts.com
最佳答案
首先,ssllabs 不会扫描未加密连接上的站点 - 仅扫描加密连接 (https) 上的站点。所以它不会告诉你你已经在 http 上启用了它。
您的问题是 nightowlcircusarts.com 和 www.nightowlcircusarts.com是两个不同的站点,您只在后者上设置它,但在前者上扫描它:
https://www.ssllabs.com/ssltest/analyze.html?d=nightowlcircusarts.com
https://www.ssllabs.com/ssltest/analyze.html?d=www.nightowlcircusarts.com
现在扫描结果确实在底部显示裸域确实重定向到 www 版本,但 ssllabs 的任务是测试 SSL/TLS 连接(发生在重定向之前),因此它故意不遵循重定向和而是报告 SSL/TLS 连接配置。它希望您单独扫描重定向站点 - 正是针对像这样的用例,您以不同的方式设置它!
我想当你“通过初始未加密的 HTTP 连接发送 HSTS header ”时,你实际上在做的是在任何地方(包括通过 https 的裸域)设置它,这就是你认为它的原因当你这样做时“有效”。
通过 https 到 https 重定向设置 HSTS 是允许的(也是预期的!)。事实上,您的具体示例已涵盖 in the RFC in section 11.4.1 .
顺便说一句,将 HSTS 添加到裸域是最佳实践,但请确保您的整个域仅通过 https 提供服务。如果您有一个子站点(例如 blog.example.com),或者也将其用于尚未保护的非公共(public)站点(例如 intranet.example.com),那么这可能会导致问题。在这种情况下,您可以将 HSTS 添加到裸域但不使用 includeSubdomain 选项 - 尽管这不会为您提供 HSTS 的全面保护。
最后,如果检查站点的各种安全 header 而不是 SSL/TLS 配置,那么 https://securityheaders.io是一个很棒的站点,并且比 ssllabs 执行的整套 SSL/TLS 测试运行起来要快得多:
https://securityheaders.io/?q=https%3A%2F%2Fnightowlcircusarts.com
https://securityheaders.io/?q=https%3A%2F%2Fwww.nightowlcircusarts.com
请注意,这两个站点会检查不同的内容,因此我们不能替代另一个站点(两者都是忠实粉丝!),但两者都显示了一些设置(HSTS 和 HPKP)。虽然在这个问题上要非常小心 HPKP(我不是粉丝,也不认为它应该被广泛使用)。
关于http - 为什么 SSL Labs 测试说在通过 HTTP 发送 header 时启用了 HSTS,但在通过 HTTPS 发送时却没有?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43133403/
我正在转换为 IE6 设计的旧系统以在现代浏览器上运行。 网站中那些还没有被转换的部分,只能在 Internet Explorer 上运行,IE6 仿真是通过下面的标签提供的。 我计划将 HSTS
我正在开发一个将 HSTS header 添加到 Web 应用程序的项目。 作为准备工作,我仅使用 default-src https 指令在报告模式下添加了 CSP header 。目的是评估违规情
https://hstspreload.org/建议应该有 2 个重定向: http://yourdomain.com至 https://yourdomain.com https://yourdoma
我正在使用一个称为“GoAgent CA”的假根CA通过代理访问许多https网站。 最近,我的Mac上的所有浏览器都显示HSTS failure和“证书有问题”。 我知道自己有患MITM的危险。但是
我在这里测试我的网站https://hstspreload.org我得到了这个错误: Error: HTTP redirects to www first http://example (HTTP)
我知道如果我的网站在预加载列表中注册,hsts(http 到 https)将从第一次开始工作。 另一方面,我还在我的 Web 服务器的 hsts header 中声明预加载。 如果我第一次使用 htt
我对 curl 完全陌生,正在尝试确定网站是否使用 Strict-Transport-Security。 我正在逃避建议。我被告知要检查 Chrome's preloaded list并运行 curl
在 ASP.NET Core 2.2 应用程序中,我们使用 app.UseHsts(); 启用了 HSTS,它在响应 header 中添加了 max-age 为 30 天的 HSTS。 在 fiddl
如果我正在运行仅 HTTPS 服务,是否有任何理由不启用 HSTS?是否有在不永久启用 HSTS 的情况下测试 HSTS 的策略或“退出”HSTS 的方法? 最佳答案 我想在 Mike 的回答中添加警
我有一个网站(来自 godaddy 的域并托管在 hostgator 中)。当我手动更新证书时,我可以将我的网站重定向到 https,但它总是从谷歌搜索转到 http。在线搜索后,我了解到 Consi
我在 /etc/nginx/sites-available/default 中有这个配置 server { listen 443 ssl; # managed by Certbot ...
我们在 Amazon ec2 上有一个服务器以满足开发人员的需要,我们有一个在 docker 容器下运行的网站。用于现场测试新功能一切正常,但昨天我大约 70% 的同事无法访问这个开发站点。发生 SS
我最近开始在我的一个网站上提供“strict-transport-security” header 。我没有预料到的一个问题是我的 SSL 证书只涵盖 mydomain.com,因此如果用户访问 ww
问题几乎就在标题本身。如果我有一个应用程序并为 HSTS header 使用 includeSubdomains 但根本没有子域,这是好还是坏? 最佳答案 很好。 如果您计划将网站提交给 Google
所以,大约一年前,我在我的网站上设置了 HSTS 并将其提交到 Google 的预加载列表。现在,我遇到了一个问题,因为我将我的 sendgrid 链接跟踪标记为白色,它依赖于我网站子域的 cname
我有以下设置: 申请https://app.domain.de是我们的生产环境,自动转发使用HTTPS。这里一切正常。最重要的是,我们的 QA 团队有多个开发版本的应用程序,可通过 http://de
我正在尝试在我的 Spring Boot 应用程序中启用 HSTS。我已将以下内容添加到我的 WebSecurityConfig (基于 Enable HTTP Strict Transport Se
我正在尝试记录使用 HTTP 严格传输安全 (HSTS) 的网站的流量。因此,无法为证书添加异常(exception)。这意味着我无法录制 session 。 有谁知道我该如何处理? 最佳答案 使用
最近,我为我的站点切换了服务器,我设法丢失了解密的 SSL key ,而且我不记得加密的密码。结果是服务器开启了 HSTS,现在很多访问者无法加载页面,因为我没有有效的 SSL 证书,并且他们的浏览器
我希望在我的网站中实现 HSTS“ super Cookie”,这样用户就不必在每次访问该网站时都填写特定的表格:SQL 数据库将映射他们的 HSTS“ super Cookie” "代码到他们以前的
我是一名优秀的程序员,十分优秀!