HSTS 预加载列表 - www 网站可能存在 SEO 问题

2024-03-04

让我在这里解释一下现实世界的情况。

我运行网站https://www.liloo.ro https://www.liloo.ro我想为其启用 HSTS(+HSTS 预加载)。

问题是为了将其提交给预加载列表 https://hstspreload.org/ the 主域必须使用 HSTS 标头进行响应。

让我更准确地说: 为了将站点提交到预加载列表并满足第一个重定向的要求必须到主域的 https 版本。

就我而言,我无法从 http 直接重定向到 https + www -> 我必须首先从 http 重定向到 https(在此处提供主域名 HSTS 标头),然后再次重定向到 https + www

这带来了巨大的重定向稀释 SEO 问题(更不用说链式重定向并不理想)。

因此,我从各个方面来看,要么必须放弃 HSTS 预加载列表,要么使用链式重定向。这两种选择看起来都不理想。

唯一可能的解决方法可能是预加载列表要求中的某些内容,但我不太明白它的含义:

如果您提供重定向,则该重定向必须具有 HSTS 标头,而不是其重定向到的页面。

据我所知,在进行重定向时没有办法提供 HSTS 标头之类的服务......但也许我错了。 有什么想法如何解决这个问题吗? ...或者我应该完全放弃 HSTS 预加载列表,因为我的网站只有 www?

此时我不能从 www 切换到非 www...我知道这将是“简单”的解决方案。

任何想法 - 非常感谢。 我注意到这个线程在 web.config 中重定向到 www 子域期间在域根上添加 HSTS http 标头 https://stackoverflow.com/questions/35013967/adding-hsts-http-headers-on-domain-root-during-redirect-to-www-subdomain-in-web?rq=1...但我怀疑它能解决问题(+我正在使用 nginx)


我真的很感谢你发布这个,因为我有完全相同的问题,即http://DOMAIN重定向directly to https://www.DOMAIN, 结合重定向到 HTTPSand那个一到那个www子域。

我知道这将是“简单”的解决方案。

请注意,有reasons https://serverfault.com/questions/145777/what-s-the-point-in-having-www-in-a-url使用子域,例如www,正如一直以来讨论过 https://meta.stackexchange.com/questions/45277/why-isnt-stackoverflow-using-www-in-the-url已经有好几次了,所以这个选择是完全可以理解的。

然而,HSTS 没有办法(至少目前还没有)将这两个重定向结合起来:它只能转发directly到 HTTPS。我想如果 HSTS 预加载站点检测到这是not简单的 HTTP 服务器本身所做的事情,然后强制执行“307 内部重定向”到 HTTPS 是不允许的。 (据我所知,这个要求并没有明确说明hsts预载 https://hstspreload.org,但只能通过实际尝试设置 HSTS 预加载才能找到。)

我没有完整回答你的问题,但我可以就你提出的几点提供更多信息:

如果您提供重定向,则该重定向必须具有 HSTS 标头,而不是其重定向到的页面。

请注意准确的(当前)报价hsts预载 https://hstspreload.org:

如果您正在服务额外的从您的重定向HTTPS站点,该重定向仍必须具有 HSTS 标头(而不是其重定向到的页面)。

这与以下几点相关:

据我所知,在进行重定向时没有办法提供 HSTS 标头之类的服务......

HTTP 重定向响应完全有可能also有一个 HSTS 标头。这仅意味着 HTTP 重定向响应还包含Strict-Transport-Security具有适当参数的标头字段。例如,使用 SWI-Prolog 作为 HTTP 服务器,您可以发出如下响应:



?- http_status_reply(moved('https://stackoverflow.com'), current_output,
     [strict_transport_security('max-age=63072000; includeSubdomains')], Code).
  

产量:



HTTP/1.1 301 Moved Permanently
Date: Sun, 12 Feb 2017 10:04:55 GMT
Location: https://stackoverflow.com
Strict-Transport-Security: max-age=63072000; includeSubdomains
Content-Length: 366
Content-Type: text/html; charset=UTF-8

etc.
  

请注意,此标头字段仅在 TLS 启用时才可接受already正在使用(否则,攻击者可以通过未经身份验证的连接强制流量流向不同的端口!)。事实上,标题must not发生在 HTTP→HTTPS 重定向中,因为它使用未经身份验证的连接,并且如果它(错误地)does通过纯 HTTP 发生,客户端must忽略它。

现在到你问题的实际要点:

这造成了巨大的重定向稀释搜索引擎优化问题(更不用说链式重定向并不理想)。

我完全同意链式重定向远非理想,而且对于我们这样的(常见的!)设置似乎没有办法解决这个问题,至少目前没有。

然而,我个人希望附加重定向不会对您网站的排名产生太大影响:理论上,一旦搜索引擎发现您的网站位于 HSTS 预加载列表中,它应该关心的只是它的 HTTPS 版本(因为这也是支持 HSTS 预加载的浏览器会做的事情!)。因此,您最终只会得到一个重定向,即https://DOMAIN&右箭头;https://www.DOMAIN一个,应该与您目前的情况相当。至少这是我有点天真的希望。在此重定向中,请确保包含 HSTS 标头,因为这是进入预加载列表的要求。当然,确切的配置细节取决于您的具体 Web 服务器。

另请注意,您甚至无法恢复原始重定向链after您已将其纳入 HSTS 预加载列表。这是因为持续要求节指出:

您必须确保您的网站继续满足提交要求每时每刻.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HSTS 预加载列表 - www 网站可能存在 SEO 问题 的相关文章

  • 强制某些页面通过 HTTPS,而其他页面则通过 HTTP...这可能吗?

    我真的被这个困住了 基本上 我尝试使用 IIS 的 URLRewrite 附加组件始终通过 SSL 制作 2 个页面 但我还需要强制所有其他页面使用 HTTP 叹气 不要问 但如果我强制其他页面通过 HTTP 那么当您查看 SSL 页面时
  • 无对等证书例外 - Volley 和具有自签名证书的 Android

    我正在尝试让我的应用程序通过 https 与我的服务器通信 由于我不想付费让受信任的 CA 签署我的服务器证书 解决方案是使用自签名证书 因此 我创建了 caconfig cnf 如下所示 ca default ca CA default
  • 用于保护网站安全(使用 SSL)时,数字证书如何工作?

    请帮助我了解整个过程是如何进行的 据我了解 Web 浏览器包含 verisign Entrust Comodo 等证书颁发机构 CA 的根证书 但是当用户访问安全页面时到底会发生什么 Web 浏览器是否向 CA 服务器发送请求来验证证书 还
  • Tomcat:具有强密码的 TLSv1.2 不起作用

    我安装了Tomcat 7 配置了对 TLSv1 2 的支持在端口 8443 上 我的连接器配置 协议 org apache coyote http11 Http11NioProtocol SSLEnabled true 方案 https 安
  • 使用 SSL 的 Xamarin.Forms Image.Source

    我正在使用一个在线商店来存储通过我们的应用程序上传的用户图像 并受 SSL 保护 上传工作一切顺利 因为我使用的是带有附加证书的 WebClient 但是当我尝试使用 Xamarin Forms Image 组件时 例如将源设置为 http
  • 使用普通用户和 https 的 gitea

    我正在尝试设置 gitea 以使用 https 和我从 LetsEncrypt 获得的证书 运行该服务作为普通用户 我已经让它与普通用户在端口 80 上使用 http 一起工作git并使用 iptables 将端口 80 重定向到端口 30
  • 如何禁用 HTTP 的 HSTS 标头?

    我已将以下内容插入到我网站的 htaccess 中 以便能够访问HSTS预加载列表 https hstspreload appspot com
  • NGINX 上的 SSL 终止

    我已经购买了 SSL 证书 并在验证模数时正确地将其捆绑在一起 即https kb wisc edu middleware 4064 https kb wisc edu middleware 4064 那么哈希值是相同的 我已将证书和密钥移
  • 具有自签名证书的 Alamofire / ServerTrustPolicy

    我想使用 Alamofire 通过带有自签名证书的 https 连接与我的服务器进行通信 我的环境在本地主机上运行 我尝试连接 但响应始终如下所示 Success false Response String nil 我用下面的代码完成了它
  • 表单提交后 Django 重定向不起作用

    Django 新手 所以这个可能有一个非常简单的答案 但我一生都找不到具体的解决方案 我只是想在使用 FileField 提交表单后重定向到新的 URL 我可以单独导航到该 URL 效果很好 文件上传正确 因此我知道它已正确验证 但重定向返
  • 如何记录 ssh 调试信息?

    我需要将 ssh 调试信息的输出写入文件中 这 ssh v email protected cdn cgi l email protection gt result txt ssh v email protected cdn cgi l e
  • 重复的“Access-Control-Allow-Origin: *”标头会破坏 CORS 吗?

    所以我们有一个提供 JSON 服务的 http 资源 它添加了一个 Access Control Allow Origin 旗帜 所以这可以用 CORS 加载 except 所以我被告知 有一些 IE9 怪癖 这意味着这在 IE9 中仍然不
  • Nginx merge_slashes 重定向

    我在我的 Java 应用程序中使用 nginx 我的问题是 nginx 正在合并斜杠 我无法将我的网站重定向到正确的版本 例如 http goout cz cs koncerty praha 被合并到 http goout cz cs ko
  • ssl.SSLEOFError: EOF 发生违反协议 (_ssl.c:1129)

    我正在尝试使用 GOOGLE Drive Api 从电脑上传多个文件到云端硬盘 from pydrive auth import GoogleAuth from pydrive drive import GoogleDrive import
  • 在 Visual Studio 中设置 SSL 证书

    我在新计算机上全新安装了 Visual Studio Community 2019 我启动了一个网络应用程序项目 第一次运行它 然后当提示接受自签名证书时 我以某种方式设法单击 不再询问 and No 此时 运行网络应用程序时 我收到 ER
  • 让我们加密证书颁发

    我正在尝试获取 Let s Encrypt 颁发的证书 已经过去了 3 个半小时 我不小心最初将我的 SecretName 设置为 echo tls 然后将其切换到我想使用的正确的 pandaist tls 我目前有这个 kubectl g
  • 如何在 Ruby 2.2 上删除不安全密码来强化 Rails+webrick+https

    更新 首先 我的测试代码没有充分显示 ruby 2 4 看到 SSLCiphers 选项 而 ruby 2 2 没有 我编辑了下面的示例代码以清楚地表明这一点 更新 由于我的问题未能得到社区的任何帮助 我继续前进 两天后找到了解决方案 我将
  • 如何在android网络库(ION)中使用自签名SSL?

    使用此网络库 https github com koush ion https github com koush ion 由于当前状态是开发 我想使用自签名 SSL 证书 图书馆论坛有一些讨论 https github com koush
  • Google Chrome 中的 ERR_SSL_CLIENT_AUTH_SIGNATURE_FAILED

    我有一个使用 SSL 客户端证书授权的网站 所有客户端证书都是使用 OpenSSL 生成的并且是自签名的 一切都适用于所有网络浏览器 但推荐的是 Google Chrome 因为它使用与 IE 相同的 SSL 仓库 因此证书安装非常简单 点
  • Facebook JavaScript SDK 通过 HTTPS 加载非安全项目

    我有一个 Facebook 应用程序 使用Facebook Connect js https connect facebook net en US all js 我正在通过 HTTPS 运行我的应用程序 网站上的所有内容均来自https 但

随机推荐

  • 如何使用 System.Net.HttpClient 发布复杂类型?

    我有一个自定义复杂类型 我想使用 Web API 来使用它 public class Widget public int ID get set public string Name get set public decimal Price
  • 如何使用复选框更改 QGraphicsView 背景

    在此代码中 更改了QGraphicsView背景 现在当我检查 true 时我需要更改背景checkBox 当我设置为checkBox去检查true我需要像这段代码一样设置背景 当我设置时checkBox去检查false 我需要设置QGra
  • Tensorflow 2 抛出 ValueError:as_list() 未在未知 TensorShape 上定义

    我正在尝试在 Tensorflow 2 0 中训练 Unet 模型 该模型将图像和分割掩模作为输入 但我得到了ValueError as list is not defined on an unknown TensorShape 堆栈跟踪显
  • 带有 ActionCable 的 Rails 5 应用程序可以部署在 Windows 上吗?

    我有一个 Rails 5 应用程序 我计划将其部署在 Linux 上 但由于我们需要一些访问非常特定的仅限 Windows 的软件 因此我需要将其部署在 Windows Server 2012 R2 上 我的软件堆栈 或组合 应该是 Ngi
  • Scala 中的调试日志不会影响性能

    在 C C Objective C 等语言中 通常使用预处理器宏来定义日志记录机制 这些机制甚至不会为发布的二进制文件进行编译 因此不会造成性能影响 大致如下 ifdef DEBUG printf some event we want to
  • python 中的对象初始值设定项语法(c#)?

    我想知道是否有一种快速的方法来初始化Python中的对象 例如 在 c 中 您可以实例化一个对象并设置字段 属性 例如 SomeClass myObject new SomeClass variableX value variableY 1
  • 从 ASP.NET MVC Lambda 表达式获取价值

    我正在尝试创建自己的 HTML 帮助器 它接受一个表达式 类似于内置的 LabelFor 帮助器 我找到了当表达式与此类似时获取属性值的示例 model gt model Forename 但是 在我的一些模型中 我想获取子元素中的属性 例
  • Python 电子邮件 PDF:某些 PDF 已损坏

    我正在尝试将 PDF 文件附加到电子邮件中 对于一个 PDF 打印为 PDF 的 Word 文档 它可以工作 收件人在 Outlook 中打开它没有问题 然而 对于其他 PDF 除了大了几 KB 之外 它们看起来都一样 它们会被损坏 是一个
  • Android - 解决 ACCESS_CONTENT_PROVIDERS_EXTERNALLY 权限?

    我正在构建一个应用程序 它给出了这个异常 因为我调用了一些内部方法 权限拒绝 没有从 pid 2520 uid 10047 调用 getContentProviderExternal 的权限 需要 android permission AC
  • WTSEnumerateSessions 挂起并且永不返回

    我有一个用 C 编写的 Net 服务 我正在调用WTSEnumerateSessions 会话检查由计时器每 15 分钟运行一次 它列出所有会话并将用户名 域组合与预定义的用户集进行比较 以确定他们是否登录到服务器 问题在于几个服务器的调用
  • C# 程序运行时初始形式不可用

    我在让程序中的主窗体按我想要的方式运行时遇到问题 我正在使用 C 在我的初始主窗体 Form1 上 我有一个运行长程序的命令按钮 在程序中间 我希望用户能够返回到初始表单并单击一些新的复选框 我将从 C 程序中将其放置在该初始表单上 下面的
  • Telegram 中的“Simple PUSH”事件如何运作?

    The 用于订阅 Telegram API 中的 PUSH 基础设施的文档 https core telegram org method account registerDevice非常缺乏 因为主要是专注于移动平台 https core
  • Cakephp - 如何使错误页面有自己的布局?

    我想要为未找到 404 页面使用不同的布局 我如何为该页面设置不同的布局 IRC 的专家帮助了我 他建议使用beforeRender 在应用程序控制器中 Before Render function beforeRender if this
  • 未将 Win32 可移植可执行映像映射到偏移量 0 处的可能原因有哪些?

    我最近一直在研究 Window 的 PE 格式 我注意到在大多数示例中 人们倾向于设定ImageBase中的偏移值optional header到一些不合理的高的东西 比如0x400000 什么可能使它不利not在偏移处映射图像0x0 首先
  • Files.walkFileTree中的遍历顺序

    顺序是什么Files walkFileTree访问同一级别的文件 目录 它似乎没有按大小 上次修改时间或名称的顺序访问它们 我在其中找不到任何内容API文档 http docs oracle com javase 7 docs api ja
  • 如何在 MiniTest 中存根?

    在我的测试中 我想为类的任何实例存根一个预设的响应 它可能看起来像这样 Book stubs title any instance returns War and Peace 然后每当我打电话时 book title它返回 战争与和平 有没
  • 如何更新TileOverlay而不闪烁?

    我有一些动态图块内容要显示在地图顶部 具体来说 天气图像 雷达 卫星 温度等 我正在使用适用于 Android v2 的 Google 地图 API 我遇到的问题是 显然更新图块图像的唯一方法 即当新数据到达时 或者当帧在延时动画中前进时
  • 使用 LoadLibrary 在 .pyd 中加载 cython cdef 函数时出现问题

    我正在尝试在 C 中动态加载 cythonized pyd 在 Linux 机器中创建一个 so 文件 使用 so 我可以执行以下操作 plugin dlopen foo so RTLD LAZY init dlsym plugin PyI
  • 调试 Jersey 解组错误 - 错误请求语法不正确

    我正在 Glassfish 上的 Jersey 的帮助下构建 REST Web 服务 现在我正在为我的搜索查询的自定义输入源而苦苦挣扎 如果有搜索方法 POST Path search Consumes application xml ap
  • HSTS 预加载列表 - www 网站可能存在 SEO 问题

    让我在这里解释一下现实世界的情况 我运行网站https www liloo ro https www liloo ro我想为其启用 HSTS HSTS 预加载 问题是为了将其提交给预加载列表 https hstspreload org th