

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 适用于应用程序负载均衡器的 HTTP 标头修改
<a name="header-modification"></a>

应用程序负载均衡器的请求标头和响应标头都支持 HTTP 标头修改。无需更新应用程序代码，通过标头修改即可更好地控制应用程序的流量和安全性。

要启用标头修改功能，请参阅[启用标头修改](enable-header-modification.md)。

## 重命名 mTLS/TLS 标题
<a name="rename-header"></a>

借助标头重命名功能，您可以配置由应用程序负载均衡器生成并添加到请求中的 mTLS 和 TLS 标头名称。

这种 HTTP 标头修改功能可让应用程序负载均衡器轻松支持使用特殊格式请求标头和响应标头的应用程序。


| 标题 | 说明 | 
| --- | --- | 
|  X-Amzn-Mtls-Clientcert-Serial-Number  |  确保目标能够识别和验证客户端在 TLS 握手期间提供的特定证书。  | 
|  X-Amzn-Mtls-Clientcert-Issuer  |  通过识别颁发证书的证书颁发机构，帮助目标对客户端证书进行验证和确认身份。  | 
|  X-Amzn-Mtls-Clientcert-Subject  |  向目标提供有关向其颁发客户端证书的实体的详细信息，有助于在 mTLS 身份验证期间进行识别、身份验证、授权和记录。  | 
|  X-Amzn-Mtls-Clientcert-Validity  |  允许目标验证正在使用的客户端证书是否在既定有效期内，确保证书没有过期或过早使用。  | 
|  X-Amzn-Mtls-Clientcert-Leaf  |  提供 mTLS 握手中使用的客户端证书，以方便服务器对客户端进行身份验证并验证证书链。这样可以确保连接安全且得到授权。  | 
|  X-Amzn-Mtls-Clientcert  |  携带完整的客户端证书。方便目标在 mTLS 握手过程中验证证书的真实性、验证证书链并对客户端进行身份验证。  | 
|  X-Amzn-TLS-Version  |  指示用于连接的 TLS 协议版本。有助于确定通信的安全性水平、解决连接问题和确保合规性。  | 
|  X-Amzn-TLS-Cipher-Suite  |  指示用于保护 TLS 中连接的加密算法组合。这使服务器能够评估连接的安全性，帮助排查兼容性问题，以及确保遵守安全策略。  | 

## 添加响应标头
<a name="insert-header"></a>

通过使用插入标头，您可以将应用程序负载均衡器配置为在响应中添加与安全相关的标头。借助这些属性，您可以插入包括 HSTS、CORS 和 CSP 在内的各种标头。

默认情况下，这些标头为空。发生这种情况时，应用程序负载均衡器不会修改此响应标头。

启用某个响应标头时，应用程序负载均衡器会将具有所配置值的标头添加到所有响应中。如果来自目标的响应包含 HTTP 响应标头，则负载均衡器会将标头值更新为配置的值。否则，负载均衡器会将 HTTP 响应标头添加到具有所配置值的响应中。


| 标题 | 说明 | 
| --- | --- | 
|  Strict-Transport-Security  |  在指定时间内通过浏览器强制执行仅限 HTTPS 的连接，这有助于防范攻 man-in-the-middle击、协议降级和用户错误。确保客户端和目标之间的所有通信都经过加密。  | 
|  Access-Control-Allow-Origin  |  控制是否可以从不同的源访问目标上的资源。这有助于实现安全的跨源交互，同时防止未经授权的访问。  | 
|  Access-Control-Allow-Methods  |  指定向目标发出跨源请求时允许的 HTTP 方法。用于控制可从不同源执行的操作。  | 
|  Access-Control-Allow-Headers  |  指定跨源请求中可以包含的自定义标头或非简单标头。此标头让目标可以控制来自不同源的客户端可以发送的标头。  | 
|  Access-Control-Allow-Credentials  |  指定客户端是否应在跨源请求中包含诸如 Cookie、HTTP 身份验证或客户端证书之类的凭证。  | 
|  Access-Control-Expose-Headers  |  允许目标指定客户端可以在跨源请求中访问的其他响应标头。  | 
|  Access-Control-Max-Age  |  定义浏览器可以缓存预检请求结果缓存的时长，从而减少重复预检的需要。这可以减少某些跨源请求所需的 OPTIONS 请求数量，从而有助于优化性能。  | 
|  Content-Security-Policy  |  一种通过控制网站可以加载和执行脚本、样式、图像等资源，来防止 XSS 等代码注入攻击的安全功能。  | 
|  X-Content-Type-Options  |  使用 no-sniff 指令来防止浏览器猜测资源的 MIME 类型，从而增强 Web 安全性。可确保浏览器仅根据声明的 Content-Type 来解释内容  | 
|  X-Frame-Options  |  一种通过控制是否可以将网页嵌入到框架中，从而帮助防止点击劫持攻击的标头安全机制。诸如 DENY 和 SAMEORIGIN 之类的值可以确保内容不会嵌入到恶意或不可信网站上。  | 

## 禁用标头
<a name="disable-header"></a>

借助禁用标头功能，您可以将应用程序负载均衡器配置为禁用响应中的 `server:awselb/2.0` 标头。这可以减少服务器特定信息的泄露，同时为应用程序提供额外的保护层。

属性名称为 `routing.http.response.server.enabled`。可用值为 `true` 或 `false`。默认值为 `true`。

## 限制
<a name="header-modification-limits"></a>
+ 标头值可包含以下字符
  + 字母数字字符：`a-z`、`A-Z` 和 `0-9`
  + 特殊字符：`_ :;.,\/'?!(){}[]@<>=-+*#&`|~^%`
+ 该属性的值大小不能超过 1K 字节。
+ 弹性负载均衡会执行基本的输入验证来确认标头值是否有效。但是，验证无法确认特定的标头是否支持该值。
+ 为任何属性设置空值都将导致应用程序负载均衡器还原默认行为。