

# CloudFront 的双向 TLS 身份验证（查看器 mTLS）
<a name="mtls-authentication"></a>

双向 TLS 身份验证（双向传输层安全身份验证，mTLS）是一种安全协议，它在标准 TLS 身份验证的基础上进行了扩展，要求进行基于证书的双向身份验证，在该机制下，客户端与服务器必须先证实自己的身份，然后才能建立安全连接。借助双向 TLS，您可以确保只有提供了可信 TLS 证书的客户端，才能获得对 CloudFront 分配的访问权限。

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

在标准 TLS 握手过程中，只有服务器需要提供证书来向客户端证明其身份。借助双向 TLS，身份验证过程会变为双向验证。当客户端尝试连接到您的 CloudFront 分配时，CloudFront 会在 TLS 握手过程中请求客户端证书。在建立安全连接之前，客户端必须提供有效的 X.509 证书，CloudFront 会根据您配置的信任存储来验证该证书。

CloudFront 在 Amazon 边缘站点执行此证书验证操作，这既能将身份验证的复杂性从原始服务器中剥离，又能保留 CloudFront 的全球性能优势。您可以在两种模式下配置 mTLS：验证模式（要求所有客户端提供有效证书）或可选模式（在客户端提供证书时对证书进行验证，但也允许无证书的连接）。

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

CloudFront 的双向 TLS 身份验证可应对传统身份验证方法难以满足需求的关键安全场景：
+ **使用内容缓存进行设备身份验证**：您可以要求游戏主机、IoT 设备或公司硬件需先通过身份验证，之后才能访问固件更新、游戏下载资源或内部资源。每台设备均包含一个唯一证书，该证书既能证明设备的真实性，又能获益于 CloudFront 的缓存功能。
+ **API 到 API 身份验证**：可用于保障可信业务合作伙伴之间、支付系统之间或微服务之间的机器对机器通信的安全。基于证书的身份验证不仅消除了对共享密钥或 API 密钥的需求，而且为自动化数据交换提供了强大的身份验证能力。

**Topics**
+ [工作原理](#how-mtls-works)
+ [使用案例](#mtls-use-cases)
+ [信任存储和证书管理](trust-stores-certificate-management.md)
+ [为 CloudFront 分配启用双向 TLS](enable-mtls-distributions.md)
+ [关联 CloudFront 连接函数](connection-functions.md)
+ [配置其他设置](configuring-additional-settings.md)
+ [用于缓存策略并转发到源的查看器 mTLS 标头](viewer-mtls-headers.md)
+ [使用 CloudFront 连接函数和 KVS 实施吊销](revocation-connection-function-kvs.md)
+ [使用连接日志实现可观测性](connection-logs.md)