# HTTP
所有基于 HTTP 的通信,包括静态资源 (opens new window),都应该受到using TLS (opens new window)的保护。
作为一个框架, Spring 安全性不处理 HTTP 连接,因此不直接提供对 HTTPS 的支持。然而,它确实提供了许多有助于 HTTPS 使用的功能。
# 重定向到 HTTPS
当客户端使用 HTTP 时, Spring 安全性可以被配置为将Servlet和WebFlux环境重定向到 HTTPS。
# 严格的运输安全
Spring 安全性为严格的运输安全提供支持,并在默认情况下启用它。
# 代理服务器配置
在使用代理服务器时,重要的是要确保你已经正确地配置了应用程序。例如,许多应用程序将有一个负载均衡器,该负载均衡器通过在https://192.168.1:8080 (opens new window)处将请求转发到应用程序服务器来响应https://example.com/ (opens new window)的请求。如果没有适当的配置,应用程序服务器将不知道负载均衡器的存在,并将请求视为https://192.168.1:8080 (opens new window)是由客户机请求的。
要解决这个问题,你可以使用RFC 7239 (opens new window)来指定正在使用负载均衡器。要使应用程序意识到这一点,你需要配置你的应用程序服务器来了解 X 转发头。例如, Tomcat 使用Remoteipvalve (opens new window), Jetty 使用ForwardeDrequestCustomizer (opens new window)。或者, Spring 用户可以利用ForwardedHeaderFilter (opens new window)。
Spring 引导用户可以使用server.use-forward-headers
属性来配置应用程序。有关更多详细信息,请参见Spring Boot documentation (opens new window)。
← 安全 HTTP 响应标头 整合 →