Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

8.11. 启用 HTTP 严格传输安全性

HTTP 严格传输安全性 (HSTS) 策略是一种安全增强,可确保主机上只允许 HTTPS 流量。所有 HTTP 请求都会默认丢弃。这可用于确保与网站安全交互,或提供安全应用程序让用户受益。

当 HSTS 启用时,HSTS 会添加一个 Strict Transport Security 标头到站点的 HTTPS 响应。您可以在要重定向的路由中使用 insecureEdgeTerminationPolicy 值,以将 HTTP 发送到 HTTPS。但是,当启用 HSTS 时,客户端会在发送请求前将所有来自 HTTP URL 的请求更改为 HTTPS,从而消除对重定向的需求。客户端不需要支持此功能,而且也可通过设置 max-age=0 来禁用。

重要

HSTS 仅适用于安全路由(边缘终止或重新加密)。其配置在 HTTP 或传递路由上无效。

要将 HSTS 启用到路由,请将 haproxy.router.openshift.io/hsts_header 值添加到边缘终止或重新加密路由:

apiVersion: v1
kind: Route
metadata:
  annotations:
    haproxy.router.openshift.io/hsts_header: max-age=31536000;includeSubDomains;preload
重要

确保 haproxy.router.openshift.io/hsts_header 值的参数中没有空格,且没有其他值。仅需要 max-age

所需的 max-age 参数指示时间长度(以秒为单位),HSTS 策略生效。每当从主机收到含有 HSTS 标头的响应时,客户端会更新 max-age。如果 max-age 超时,客户端会丢弃该策略。

可选 includeSubDomains 参数告知客户端主机的所有子域与主机相同。

如果 max-age 大于 0,可选 的 preload 参数允许外部服务将此站点包含在 HSTS 预加载列表中。例如,Google 等站点可以构造设有 preload 的站点的列表。浏览器可以使用这些列表来确定哪些站点仅通过 HTTPS 与 通信,即使在哪些站点与站点交互之前也是如此。如果不设置 preload,他们需要通过 HTTPS 与站点通信以获取标头。