如何配置GCP Compute Engine出站流量经负载均衡器转发及解决mTLS问题?
解决方案
一、强制所有出站流量通过统一出口IP(解决VM直连互联网问题)
- 移除所有VM实例的公网IP,确保它们仅能通过内部网络访问外部资源
- 配置Cloud NAT:在VPC中创建Cloud NAT网关,指定1个或多个静态公网IP作为出口IP,将这些静态IP提供给外部公司加入白名单(可替代或补充原负载均衡器IP)
- 将NAT网关关联到VM所在子网,确保子网内所有VM的出站流量均通过NAT网关的静态IP转发
二、在GCP负载均衡器层配置mTLS(解决证书私钥无法获取的问题)
由于GCP托管SSL证书的私钥无法导出,无法在应用层实现mTLS,可直接在负载均衡器层完成mTLS握手:
- 收集外部公司用于mTLS的客户端CA证书(PEM格式)
- 在GCP控制台的负载均衡器配置中,找到目标HTTPS代理,启用客户端证书验证
- 将客户端CA证书上传至GCP证书管理服务,并关联到目标HTTPS代理
- 配置负载均衡器要求所有入站请求必须提供有效客户端证书,否则拒绝访问
- 确保负载均衡器的后端服务指向你的VM实例,此时LB会完成TLS终止(含mTLS验证),再以明文或内部TLS方式转发请求到VM,无需VM处理证书逻辑
额外验证步骤
- 检查VM路由表,确认无自定义路由让流量绕过NAT网关或负载均衡器
- 在VM内执行
curl ifconfig.me,验证返回IP为Cloud NAT的静态IP而非VM自身IP - 让外部公司用客户端证书发起请求,确认能通过LB正常访问服务
内容的提问来源于stack exchange,提问作者Harsha Vardhan Dommaraju
相关产品推荐
相关产品推荐

