

# 源双向 TLS 与 CloudFront 结合使用
<a name="origin-mtls-authentication"></a>

双向 TLS 身份验证（双向传输层安全身份验证，mTLS）是一种安全协议，它在标准 TLS 身份验证的基础上进行了扩展，要求进行基于证书的双向身份验证，在该机制下，客户端与服务器必须先证实自己的身份，然后才能建立安全连接。

## 查看器 mTLS 与源 mTLS
<a name="viewer-mtls-vs-origin-mtls"></a>

可以在查看器与 CloudFront 分配（查看器 mTLS）之间启用双向身份验证（mTLS），并且/或者也可以在 CloudFront 分配和源（源 mTLS）之间启用双向身份验证。本文档与源 mTLS 配置有关。有关查看器 mTLS 配置，请参阅：[CloudFront 的双向 TLS 身份验证（查看器 mTLS）源双向 TLS 与 CloudFront 结合使用](mtls-authentication.md)。

源 mTLS 使 CloudFront 能够使用客户端证书向原始服务器对其自身进行身份验证。借助源 mTLS，您可以确保只有经过授权的 CloudFront 分配才能与应用程序服务器建立连接，从而有助于防止未经授权的访问尝试。

**注意**  
在源 mTLS 连接中，CloudFront 充当客户端，并在 TLS 握手期间将其客户端证书提供给原始服务器。CloudFront 不对客户端证书的有效性或吊销状态进行验证，这是原始服务器的责任。根据安全要求，源基础设施必须配置为针对客户端证书的信任存储验证客户端证书、检查证书到期以及执行吊销检查（例如 CRL 或 OCSP 验证）。CloudFront 的角色仅限提供证书；所有证书验证逻辑和安全策略均由原始服务器强制执行。

## 工作原理
<a name="how-origin-mtls-works"></a>

在 CloudFront 和源之间的标准 TLS 握手中，只有原始服务器向 CloudFront 提供证书来证明其身份。借助源 mTLS，身份验证过程会变为双向验证。当 CloudFront 尝试连接到原始服务器时，CloudFront 会在 TLS 握手期间提供客户端证书。在建立安全连接之前，原始服务器会针对证书的信任存储验证此证书。

## 使用案例
<a name="origin-mtls-use-cases"></a>

源 mTLS 可解决几种关键的安全场景，在此类场景中，传统的身份验证方法会产生运营开销：
+ **混合云和多云安全**：您可以保护 CloudFront 与在 AWS 外部托管的源或 AWS 上的公有源之间的连接。这样，就无需管理 IP 许可名单或自定义标头解决方案，从而在 AWS、本地数据中心和第三方提供商之间提供一致的基于证书的身份验证。运营分布式基础设施的媒体公司、零售商和企业可从其整个基础设施的标准化安全控制中受益。
+ **B2B API 和后端安全**：您可以保护您的后端 API 和微服务免受直接访问尝试的影响，同时保持 CloudFront 的性能优势。具有严格身份验证要求的 SaaS 平台、支付处理系统和企业应用程序可以验证 API 请求仅来自经授权的 CloudFront 分配，从而防止中间人攻击和未经授权的访问尝试。

## 重要：原始服务器要求
<a name="important-origin-server-requirements"></a>

源 mTLS 要求将原始服务器配置为支持双向 TLS 身份验证。源基础设施必须能够：
+ 在 TLS 握手期间请求和验证客户端证书
+ 使用颁发了 CloudFront 客户端证书的证书颁发机构证书维护信任存储
+ 记录和监控双向 TLS 连接事件
+ 管理证书验证策略和处理身份验证失败

CloudFront 负责提供客户端证书，但原始服务器负责验证这些证书并管理双向 TLS 连接。在 CloudFront 中启用源 mTLS 之前，请确保已正确地配置源基础设施。

## 开始使用
<a name="how-origin-mtls-getting-started"></a>

要在 CloudFront 中实现源 mTLS，您需要在 AWS Certificate Manager 中导入客户端证书，将原始服务器配置为要求双向 TLS，并在您的 CloudFront 分配中启用源 mTLS。以下各节提供每项配置任务的分步说明。

**Topics**
+ [查看器 mTLS 与源 mTLS](#viewer-mtls-vs-origin-mtls)
+ [工作原理](#how-origin-mtls-works)
+ [使用案例](#origin-mtls-use-cases)
+ [重要：原始服务器要求](#important-origin-server-requirements)
+ [开始使用](#how-origin-mtls-getting-started)
+ [使用 AWS Certificate Manager 管理证书](origin-certificate-management-certificate-manager.md)
+ [为 CloudFront 分配启用源双向 TLS](origin-enable-mtls-distributions.md)
+ [将 CloudFront Functions 与源双向 TLS 结合使用](origin-mtls-cloudfront-functions.md)