亚马逊AWS官方博客

新增功能 – 适用于网络负载均衡器的 TLS 终止

当您使用 HTTPS 协议访问网站时,将会发生一系列奇妙的事情(正式名称为 SSL/TLS 握手)以创建和保持安全的通信通道。客户端(浏览器)和 Web 服务器会共同协商出一致的加密方法、交换密钥并设置会话密钥。会话建立后,对话两端都将使用会话密钥对所有后续流量进行加密和解密。由于会话密钥对客户端和服务器之间的对话而言是唯一的,第三方无法对流量进行解密,也无法干扰对话。

新的 TLS 终止功能

现在,我们简化了构建安全 Web 应用程序的过程,让您可以使用在网络负载均衡器处终止的 TLS(传输层安全)连接(您可以将 TLS 想象为提供 HTTPS 中的“S”)。这样您的后端服务器将无需执行需要耗费大量计算资源的流量加密和解密任务,同时又提供了多种其他功能和优势:

源 IP 保护 

即使 TLS 在 NLB 处终止,仍可将源 IP 地址和端口呈现给后端服务器。就像我同事 Colm 所说,这“简直太神奇了!” 

简化管理

大规模使用 TLS 意味着您需要承担向每个后端服务器发布服务器证书的责任。这产生了超额的管理工作(有时会涉及一系列的代理服务器),

同时由于存在多个证书副本,也增加了您的受攻击面。今天发布的功能消除了所有这些复杂性,让您可以集中管理证书。

实时安装补丁

TLS 协议十分复杂,其实施也需要不时更新以应对新出现的威胁。在网络负载均衡器处终止连接可保护您的后端服务器,并让我们可以针对这些威胁更新您的网络负载均衡器。我们使用 s2n 协议,这是我们以安全性为中心经正式验证的 TLS/SSL 协议实现。

Classic 升级

如果您目前使用 Classic Load Balancer 作为 TLS 终止点,则切换到网络负载均衡器可让您更快速地扩展,从而满足负载增加的需求。此外,您还可以将静态 IP 地址用于 NLB,记录请求的源 IP 地址日志。

访问日志 – 您现在可以启用网络负载均衡器的访问日志功能,将它们指向您选择的 S3 存储桶。日志条目包含有关 TLS 协议版本、加密套件、连接时间、握手时间等方面的详细信息。 

PrivateLink 支持

此功能支持使用 PrivateLink 创建与位于 VPC 内运行的网络服务前方的网络负载均衡器的连接。

 

TLS 终止功能的使用

您可以在几分钟内创建网络负载均衡器并使用 TLS 终止功能! 您可以使用 API (CreateLoadBalancer)、CLI (create-load-balancer)、EC2 控制台AWS CloudFormation 模板。我将使用控制台并单击“负载均衡器”开始。然后我会单击网络负载均衡器区域的创建

我会输入一个名称 (MyLB2),然后“负载均衡器协议”部分选择 TLS (Secure TCP)

然后我会选择一个或多个可用区,此外还可以为每个可用区选择一个弹性 IP 地址。我还可以选择为我的 NLB 添加标签。所有设置都完成后,我会单击下一步: 配置安全设置以继续:

在下一页,我可以选择现有证书或上传新的证书。我还将选择一个安全策略(稍后进一步详细解释):

目前共有七种安全策略可供选择。每种策略都允许使用一定的 TLS 版本和加密方法:

使用 describe-ssl-policies 命令可以了解有关策略的更多信息:

选择好证书和策略后,我会单击“下一步: 配置路由”。我可以选择将在我的 NLB 和目标之间使用的通信协议

(TCP 或 TLS)。如果我选择 TLS,通信将会加密;这样可让您使用完全的端到端传输中加密:

剩余的设置流程步骤与通常一样,我可以立即开始使用我的网络负载均衡器。

 

本篇作者

Jeff Barr

AWS 首席布道师; 2004年开始发布博客,此后便笔耕不辍。