HTTPS为什么可以穿越NAT端口映射设备

本文涉及的产品
公网NAT网关,每月750个小时 15CU
云防火墙,500元 1000GB
简介: HTTPS能穿越NAT端口映射设备的原因在于,NAT设备仅在IP和端口层面进行地址转换,不对应用层协议(如TLS)的内容进行解析或干预。因此,HTTPS的加密通信可在客户端与服务器间直接建立,NAT设备充当透明中介,确保数据包正确路由,而不涉及加密或认证过程。这样即使没有在NAT设备上配置证书,HTTPS连接也能顺利建立并保持安全。

HTTPS为什么可以穿越NAT端口映射设备?

我的理解是:当一个TCP连接到达端口映射设备(比如防火墙)时,该设备从实现原理上可以看作是作为后端服务器和前端客户端之间的中间人角色。无论是前期的三次握手类的控制连接,还是后续的数据传输,中间人都与前后端分别陆续完成上述步骤。那么问题来了,HTTPS类的TCP在三次握手后,后续开始证书传输、对称密钥生成等。这个过程涉及到私钥密钥身份认证。而我的防火墙上并没有额外配置证书之类的配置,也没有在客户端添加防火墙证书的操作,就是简单的在防火墙上配置了一个某内部服务器的443的端口映射。结果就通了,想不明白。
NAT NetworkAddress Translation

PAT Port Address Translation

CDN Content Delivery Network

之所以产生这个理解偏差,可能是因为不熟悉端口映射(PAT)工作原理而造成的。

为了更好地理解PAT的工作原理,先问自己几个问题:

Q1: 为何事先在NAT设备做端口映射?

Q2: 为何不把公网IP直接配置在https服务器上,而是把公网IP配置在NAT设备上?

Q3: 端口映射(PAT)工作在哪层?

Q4:客户端的TCP连接终结(Termination)在哪里?

以下是问题的回答

A1: 只有公网IP才可以在互联网上被用户访问,而服务器的私有IP无法被互联网用户访问,假设公司的公网IP = 1.1.1.1,服务器IP = 10.0.0.1,端口映射将产生这个静态表项。
NAT设备一旦接收目的IP + 端口号为1.1.1.1:443的报文,就会转换为10.0.0.1:443,并将转换好的IP报文继续转发给服务器。

A2:如果把公网IP直接配置在https服务器上,那么公网IP就被https服务器独占了,工作在别的端口号的服务器,如21、80、445端口就无法被互联网用户访问。

而在NAT设备上做21、80、443、445端口映射,可以将这些端口分别映射到特定的服务器上。A3:端口映射工作在三四层,三层为IP,四层为TCP/UDP。

A4: 如下图所示,客户端的TCP连接被https服务器终结,而不是NAT设备,NAT设备只是做三四层地址+端口号的转换,仅此而已。

如上图,在NAT设备眼里,TLS及应用层的http仅仅是货物,NAT设备对这些货物并不关心是什么,更不会尝试去理解或修改。image.png
客户端的TLS安全会话也是终结在https服务器上,所以和安全有关的话题,如安全加密组件协商、数字证书认证、服务器的私钥签名、RSA交换密钥算法、DH交换密钥算法等等,都是在客户端与服务器之间进行的,无需NAT设备的参与,所以NAT设备无需任何TLS安全有关的配置,仅仅做好自己本职工作即可。

目测题主是把端口映射与前置代理服务器混淆了。

首先来解释一下什么是前置代理服务器?image.png
前置

如上图所示,在https服务器前方,有一个https 代理服务器(proxy),这里的前方的意思是,反向代理服务器比https服务器更靠近客户端,此谓前置。

反向代理

通常意义上的代理,是为客户端服务的,作为客户端的全权代理,和服务器建立TCP连接,并将从服务器获取的网页,再转交给客户端,此谓代理服务器。

而反向代理,恰恰相反,是为服务器服务的,此谓反向代理。

当客户端访问服务器的流量经过前置反向代理时,反向代理直接终结该TCP连接,接下来再直接终结TLS安全会话,仿佛自己就是真正的服务器一般。

有同学会问,为何客户端访问服务器的流量会先经过前置反向代理?

上文其实已经解释过了,因为反向代理的位置在服务器的前方。

解释完前置反向代理服务器,就会发现,反向代理服务器既然以服务器的名义与客户端建立TLS安全会话,那逃避不了的话题就是,反向代理究竟需不需要服务器的私钥与公钥证书?

当然需要,反向代理作为一个中间人,获得了服务器的合法的授权。

前置反向代理与服务器的部署场景有

1) 在一个机房

这种部署场景,希望前置反向代理提供安全防护服务,只有443端口的流量才能到达服务器,而其它所有的流量都无法到达服务器,可以避免服务器安全漏洞而产生的风险。

2) 相距很遥远的距离

这种就是CDN的部署场景,为的是CDN服务器更靠近用户,可以提高用户响应的速度。

CDN服务器(反向代理)与服务器,在客户端请求连接之前,TLS安全会话已经建立,这样大大缩短TLS安全会话的建立时间,间接提高用户响应。

还有一种部署场景,http服务器不支持TLS安全会话,希望前置反向代理服务器能够提供安全会话服务。image.png
如上图所示,反向代理服务器分别与客户端、服务器分别建立TCP连接,步骤如下:

1、客户端与反向代理建立TCP连接(443)

2、客户端与反向代理建立TLS安全会话 (使用服务器的私钥、公钥完成认证)

3、将http里的URL提取出来

4、反向代理服务器与服务器建立TCP连接(80)

5、将步骤3的URL发给服务器

6、服务器返回请求的网页内容

7、反向代理服务器将网页内容,使用TLS安全加密发给客户端

8、客户端将TLS加密内容解密出来,获得了明文的网页内容,并呈现在浏览器上。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
目录
相关文章
|
17天前
|
网络协议 网络安全 网络虚拟化
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算。通过这些术语的详细解释,帮助读者更好地理解和应用网络技术,应对数字化时代的挑战和机遇。
60 3
|
7月前
|
监控 网络协议 安全
【亮剑】当设备IP能ping通但无法上网时,可能是DNS解析、网关/路由设置、防火墙限制、网络配置错误或ISP问题
【4月更文挑战第30天】当设备IP能ping通但无法上网时,可能是DNS解析、网关/路由设置、防火墙限制、网络配置错误或ISP问题。解决步骤包括检查网络配置、DNS设置、网关路由、防火墙规则,以及联系ISP。预防措施包括定期备份配置、更新固件、监控网络性能和实施网络安全策略。通过排查和维护,可确保网络稳定和安全。
1273 1
|
7月前
|
安全 网络安全 数据安全/隐私保护
DMZ与端口转发的区别
【4月更文挑战第9天】
453 4
|
7月前
|
域名解析 缓存 网络协议
|
域名解析 缓存 网络协议
【Hello Network】DNS协议 NAT技术 代理服务器
【Hello Network】DNS协议 NAT技术 代理服务器
146 0
二端口网络
二端口网络是指具有两个输入端口和两个输出端口的电路或系统。它是电子电路和通信系统中常见的一种电路结构,用于对信号进行处理、传输和转换。
182 0
|
负载均衡 网络协议 安全
DNS协议、ICMP协议、NAT技术(二)
DNS协议、ICMP协议、NAT技术
254 0
|
域名解析 存储 缓存
DNS协议、ICMP协议、NAT技术(一)
DNS协议、ICMP协议、NAT技术
266 0
内网安全-内网漫游Socks代理隧道技术
内网安全-内网漫游Socks代理隧道技术
|
网络安全 网络虚拟化
VSR公网对接strongSwan NAT穿越
VSR公网对接strongSwan NAT穿越
VSR公网对接strongSwan NAT穿越