Skip to main content

RFC 6797 - HTTP Strict Transport Security (HTTP严格传输安全, HSTS)

互联网工程任务组 (IETF)
请求评论: 6797
类别: 标准跟踪
ISSN: 2070-1721

作者:
J. Hodges (PayPal)
C. Jackson (Carnegie Mellon University)
A. Barth (Google, Inc.)

发布日期: 2012年11月


摘要 (Abstract)

本规范定义了一种机制,使网站能够声明自己只能通过安全连接访问,和/或使用户能够指示其用户代理 (user agent) 仅通过安全连接与给定站点交互。这个整体策略称为HTTP严格传输安全 (HTTP Strict Transport Security, HSTS)。该策略由网站通过Strict-Transport-Security HTTP响应头字段和/或其他方式 (例如,用户代理配置) 声明。


本备忘录的状态 (Status of This Memo)

这是一份互联网标准跟踪文档。

本文档是互联网工程任务组 (IETF) 的产品。它代表了IETF社区的共识。它已经接受了公众审查,并已被互联网工程指导组 (IESG) 批准发布。有关互联网标准的更多信息,请参见RFC 5741的第2节。

有关本文档当前状态、任何勘误表以及如何提供反馈的信息,可访问:
http://www.rfc-editor.org/info/rfc6797


Copyright (c) 2012 IETF Trust及文档作者。保留所有权利。

本文档受BCP 78和IETF Trust关于IETF文档的法律规定 (http://trustee.ietf.org/license-info) 的约束,这些规定在本文档发布之日有效。请仔细阅读这些文档,因为它们描述了您对本文档的权利和限制。


目录 (Table of Contents)

附录 (Appendices)


相关资源


快速参考

HSTS的核心价值

HSTS通过强制HTTPS连接,解决了以下关键Web安全问题:

  1. SSL Stripping攻击: 攻击者将HTTPS链接替换为HTTP
  2. 中间人攻击: 拦截和修改未加密流量
  3. 会话劫持: 窃取通过HTTP传输的cookie
  4. 混合内容问题: HTTPS页面加载HTTP资源

基本用法

服务器配置示例 (Nginx):

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

浏览器行为:

用户访问: http://example.com
浏览器自动转换: https://example.com
证书错误: 直接阻止,不允许继续

部署建议

  1. 测试阶段: max-age=300 (5分钟)
  2. 初期部署: max-age=86400 (1天)
  3. 稳定运行: max-age=31536000 (1年)
  4. 加入预加载列表: max-age=63072000; includeSubDomains; preload

注意事项

⚠️ 重要警告:

  • 设置HSTS后很难快速撤销
  • 使用includeSubDomains前确保所有子域支持HTTPS
  • 不要在HTTP响应中发送HSTS头(会被剥离)
  • 避免在开发环境使用长期max-age值

本RFC是现代Web安全的基石之一,已被所有主流浏览器支持。正确部署HSTS可以显著提升网站的安全性。