对于绝大多数有远程办公需求的企业来说,SSLVPN是普及率最高的远程接入方案,用户不需要提前安装专用客户端,用常规浏览器就能发起连接,不少普通用户只知道输入账号密码就能访问内网OA、文件服务器,却对背后的SSL VPN连接原理和数据流转逻辑完全不了解。本文就基于常规企业的实际部署场景,拆解全流程的技术细节,同时给出普通用户也能上手的故障验证方法。
SSLVPN部署的基础配置前提
很多人误以为随便在公网找一台服务器开启对应服务就能搭建可用的SSLVPN,实际上合规的企业级部署,首先会把SSLVPN网关设备放在边界防火墙的DMZ专属VLAN区域,不会直接把设备裸暴露在公网环境下,避免网关本身受到恶意攻击。

合规企业级SSLVPN的分层部署架构示意,直观展现各网络节点的位置关系
管理员还需要提前给SSLVPN网关申请受信任公共CA机构签发的SSL证书,尽量不使用自签名证书,否则用户终端的浏览器第一次访问服务地址时,会直接弹出高危风险提示,阻断后续连接流程。除此之外运维人员还要提前在网关后台配置好对应权限访问组,给不同岗位的用户划分可访问的内网资源范围,这部分配置是后续SSL VPN连接原理中权限校验环节的核心基础,缺漏任何一步都会导致后续连接异常。
SSL VPN连接原理的核心握手阶段拆解
用户在企业外部的网络环境下打开浏览器,输入SSLVPN的公网域名,第一步发起的是TCP三次握手流程,先和网关的443服务端口建立基础网络连接,这个阶段和普通用户访问HTTPS网站的逻辑没有区别。如果用户此时根本打不开SSLVPN的登录页面,可以先在本地命令行工具里ping服务域名,确认是否能解析到正确的网关公网IP,要是解析结果异常,大概率是本地网络到公网的路由链路出现了问题。
TCP基础连接建立完成后,就进入核心的SSL握手流程,网关会首先把提前申请的SSL证书推送给用户终端,浏览器会自动校验证书的有效期、签发主体、域名匹配度等信息,如果证书过期或者域名不匹配,浏览器会直接拦截访问请求,这一步是SSL VPN连接原理里的第一道身份校验,确保用户接入的是真实的企业网关,而非仿冒的钓鱼站点。
证书校验通过之后,用户输入自己的账号密码,搭配动态令牌、企业微信扫码这类多因子认证信息,终端会把加密后的身份凭证发送给网关,网关会把凭证同步到企业的AD域或者统一身份认证服务器做二次校验,确认账号没有过期、没有被锁定,同时匹配用户所属的权限组信息,这层校验完全通过之后,网关才会给用户终端下发临时协商生成的加密会话密钥。
加密隧道的数据传输全流程
拿到协商后的会话密钥之后,用户终端和网关之间的所有交互数据都会被SSL隧道加密,哪怕用户当前接入的是公共WiFi这类不可信网络,周边的恶意设备抓包也只能获取到无意义的密文,无法解析出里面的内网访问内容。这个阶段用户发起访问内网OA的请求时,浏览器会先把整份数据包加密之后发送给SSLVPN网关。
网关收到加密数据包之后先做解密处理,提取出里面的内网访问目标地址,再把明文的访问请求转发给内网对应的OA服务器。内网服务器返回的响应数据不会直接发回给公网用户,而是先回传给SSLVPN网关,网关把响应内容重新用协商好的会话密钥加密之后,再通过公网传输给用户终端,终端完成解密之后再把正常页面展示在浏览器上,整个跨公网的传输环节不会出现明文数据。
日常使用的故障定位与常见误区
不少用户遇到SSLVPN显示连接成功但打不开内网资源的问题,第一反应是重启设备,其实可以先看浏览器地址栏左侧的锁型标识是否显示正常,如果锁图标上带有风险感叹号,说明证书校验环节出了问题,相当于SSL VPN连接原理里的信任链路断裂,后续的加密传输自然没法正常完成,先检查终端的系统时间是否和当前时区的标准时间一致,很多时候终端时间偏差会直接让浏览器判定证书处于无效状态。
如果证书状态完全正常,可以尝试访问几个不同的内网业务系统,要是部分资源能正常打开、部分资源加载失败,大概率是管理员配置的权限组没有给当前账号开放对应资源的访问白名单,小鸟加速器不属于本地网络的问题,联系运维调整网关后台的权限配置就可以解决。
这里也要澄清一个常见的认知误区,很多用户以为接入SSLVPN之后所有的上网流量都会走企业内网,实际上绝大多数企业部署的都是分离隧道模式,只有访问内网指定网段的流量才会走SSL加密隧道,普通访问公网的流量还是走用户本地的运营商网络,不会把所有浏览数据都上传到企业网关,小鸟也不存在绝对匿名的使用效果。
小鸟VPN 
