VPN 与加速器

SSTPVPN连接原理详解搞懂基于HTTPS的加密传输逻


SSTPVPN连接原理详解搞懂基于HTTPS的加密传输逻

很多企业远程办公场景下会优先选择SSTP VPN方案,它天生基于HTTPS协议构建,能绕过绝大多数常规防火墙的端口拦截,不需要额外开放特殊端口就能完成加密隧道搭建,不少用户用了很久却没理清底层传输逻辑,后续遇到连接故障也不知道从哪下手排查,本文就从核心原理到实际配置、故障排查全链路拆解相关内容。

SSTP VPN的核心连接原理拆解

SSTP的全称为安全套接字隧道协议,它本身的底层传输载体就是标准的HTTPS协议,默认走TCP443端口,和普通的网页HTTPS访问走的路径完全一致,这也是它不容易被常规防火墙拦截的核心原因。

网络拓扑演示SSTPVPN连接原理

SSTP VPN基于标准HTTPS协议传输,可绕过绝大多数常规防火墙的端口拦截

和其他基于UDP或者自定义TCP端口的VPN协议不同,SSTP VPN的连接第一步,是客户端先和服务端完成标准的HTTPS握手流程,先通过TLS协商出双方认可的加密套件,校验服务端的SSL证书合法性,这一步和你访问正规加密网页的加密握手过程没有任何区别。

完成HTTPS握手之后,SSTP才会在已经建立好的加密HTTPS通道内部,封装PPP协议的数据包,后续所有的用户内网访问流量,都会被拆分成PPP帧之后再套上HTTPS的加密外壳往外传输,从外部抓包看只能看到普通的HTTPS流量,很难直接识别出内部的VPN隧道特征。

SSTP VPN的配置前提要求

想要正常搭建可用的SSTP VPN服务,首先服务端必须配置合法有效的SSL证书,优先选择受主流操作系统信任的CA机构签发的证书,不能用未做信任导入的自签名证书,否则客户端在第一步HTTPS握手阶段就会直接校验失败,中断整个连接流程。

其次客户端和服务端之间的网络不能拦截TCP443端口的出站入站流量,也不能对HTTPS流量做深度包检测之后的中间人篡改,一旦中间网络篡改了TLS握手的证书信息,连接也会直接触发校验失败的报错。

如果是企业内部部署SSTP VPN服务,不需要在防火墙上开放除了443之外的其他额外端口,也不需要额外配置复杂的多端口NAT转发规则,只要把服务的443端口映射到公网即可,这也是它比其他多数VPN协议部署更简单的地方。

连接异常的常规检查步骤

遇到SSTP VPN连接失败的情况,首先第一步可以先在客户端浏览器里直接访问你配置的SSTP VPN服务地址,看能不能正常加载出证书提示或者默认的服务页面,如果浏览器直接提示连接被拒绝,说明底层网络连443端口都不通,先排查网络层面的连通性问题。

如果浏览器可以正常访问服务地址,接下来可以检查客户端系统里存储的根证书列表,确认SSTP服务端使用的SSL证书的根证书是被系统信任的,如果之前手动导入过自签名证书,机场推荐要确认证书没有过期或者被系统安全策略误删除。

如果前面两步都没有问题,再去检查客户端的VPN配置参数,确认服务地址、机场梯子用户名密码、认证方式都和服务端的配置完全匹配,不要混用其他VPN协议的认证参数,避免出现服务端无法识别认证请求的问题。

实际使用的常见误区

很多用户误以为SSTP VPN完全无法被网络管控设备识别,实际上现在不少深度包检测设备已经可以通过流量的特征行为,区分普通网页HTTPS流量和SSTP VPN的隧道流量,它并不是绝对不会被拦截的方案。

还有不少用户为了省事直接在服务端用自签名证书跑SSTP VPN,这种情况下客户端为了连接只能强制忽略证书校验,相当于整个HTTPS的加密信任体系完全失效,中间网络很容易篡改隧道里的传输内容,反而会带来额外的隐私风险。

使用SSTP VPN的时候也不要默认所有流量都会走加密隧道,要提前在服务端配置好对应的路由规则,只有指定的内网网段流量才走隧道,公网普通访问流量直接走本地网络,才能避免不必要的传输损耗。

连接排障编辑组
连接排障编辑组
内容编辑

按设备、网络、客户端和服务端逐层检查,让故障定位更有条理。

查看更多文章
连接指南

从一个连接问题开始

遇到直连例外过宽相关问题,可从“缩小到明确需要的目标并保留原规则备份”开始阅读。不能把所有私有网段都默认视作本地资源,需要结合具体环境判断。