如何加密Azure中Application Gateway与后端VM之间的传输流量
实现Application Gateway与后端VM的流量加密方案
核心实现思路
要实现AG到VM的端到端加密,完全不需要依赖Private Link,直接通过Application Gateway原生的后端HTTPS加密能力即可落地,对应两个常见的认知点可以提前厘清:
- AG的TLS加密能力和后端资源的类型无关,不管是PaaS还是IaaS资源,只要后端服务能提供HTTPS监听能力,就可以接入做加密传输
- 即便不部署Private Link,只要AG和VM处于同一VNet或通过VNet对等互联打通,二者之间的传输本身就走Azure内网骨干,没有暴露到公网,叠加TLS加密后就能满足传输加密的防护要求
具体配置步骤
第一步:为Ubuntu VM配置HTTPS服务
- 在VM上运行的Web服务(Nginx/Apache等)侧部署TLS监听,无需购买公网受信证书,使用内网自签证书或内网CA签发的证书即可满足要求
- 可通过OpenSSL快速生成自签证书,对应命令为:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/server.key -out /etc/ssl/certs/server.crt - 修改Web服务配置,将原来的80端口明文HTTP监听,切换为HTTPS端口(如443或自定义端口),加载上述生成的证书文件,重启服务后确认本地HTTPS访问业务正常
- 调整VM对应的NSG规则,保持仅允许AG所在子网的IP段入站的访问控制逻辑,新增对应HTTPS端口的入站放行规则,不要放开公网对该端口的访问权限
第二步:调整Application Gateway的后端配置
- 修改后端池配置,将原来指向VM的80端口的转发目标,更新为VM对应的HTTPS端口
- 新建关联该后端池的后端HTTP设置,核心修改点为将协议从明文
HTTP切换为HTTPS,此配置生效后,AG向后端VM发起的所有请求都会自动走TLS加密通道,不再传输明文内容 - 解决证书信任问题:由于VM侧使用的是自签或内网CA签发的非公网受信证书,需要将VM侧使用的证书公钥文件(即生成的.crt文件内容)上传到AG的受信根证书库,若证书的通用名称(CN)与AG连接后端时使用的主机名不匹配,需要开启“覆盖后端服务器证书名称”选项,避免AG因证书校验失败拦截请求
- 将AG上原来关联后端池的请求路由规则,绑定刚才配置好的HTTPS后端HTTP设置,保存配置等待AG更新完成即可
- 注意:上述调整仅修改AG到后端VM的传输链路,AG面向公网用户的SSL证书、监听配置完全不需要变动,不会影响现有用户的访问体验
可选的强化方案
如果你后续想要进一步收紧内网访问控制,可以再为VM的网卡配置Private Endpoint,将VM的私有IP映射到Private Link资源,再把AG后端池的目标切换为Private Link的私有地址:
- 该配置和现有TLS加密逻辑不冲突,可以叠加使用
- 配置完成后AG与VM之间的流量会完全走Azure内网的私有路由,不会经过VNet的公共子网段,访问隔离性会更强
常见注意事项
- 保持原有的NSG访问控制逻辑,不要因为开启HTTPS监听就放开公网对VM端口的访问
- 提前规划证书轮换机制,在证书到期前同步更新VM侧的证书和AG侧上传的受信根证书,避免链路中断
- 若使用带WAF功能的Application Gateway,HTTPS后端配置流程和普通AG完全一致,无需额外适配
内容的提问来源于stack exchange,提问作者yesman
相关产品推荐
相关产品推荐

