亚马逊AWS官方博客
动态 IP 场景下的 Site-to-Site VPN组网方案
摘要:在企业混合云组网中,Site-to-Site VPN 是连接办公地点与亚马逊云科技的常用方案。然而,当办公地点使用部分 ISP 接入时,公网 IP 为动态分配,按照以往的经验,Customer Gateway需要固定 IP, IP变化会导致隧道中断,无法自动恢复。
本文介绍一种解决方案,IP变化后隧道可自动恢复的配置方式,并阐述方案原理、架构设计及部署步骤。
一、背景与原理分析
1.1 客户场景
某跨国企业在海外偏远地区设有办公地点,核心业务系统部署在亚马逊云科技。办公地点通过当地运营商提供的固网线路,以 Site-to-Site VPN方式接入亚马逊云科技网络。由于当地运营商网络偶尔出现丢包,客户决定新增一条互联网线路作为冗余,以提高网络可靠性。
然而,新增线路是卫星互联网,它的公网 IP 为动态分配,不具备固定 IP。而 Site-to-Site VPN 创建 Customer Gateway 时,按照以往的经验,认证方式要求提供对端设备的固定公网 IP 地址。公网 IP 一旦变化,VPN 隧道将中断,业务访问受阻,无法满足生产环境的稳定性要求。
1.2 原理分析
1. VPN 与 IPsec 的关系
VPN(Virtual Private Network):让两个物理上隔离的私有网络,通过公共互联网安全地互相通信。IPsec 是实现 VPN 最常用的协议族之一——它定义了”怎么加密、怎么认证、怎么封装”。在 Site-to-Site VPN 中,底层正是基于 IPsec 实现的。
2. IPsec 建立连接的两个阶段
IPsec 建立一条 VPN 隧道分为两个阶段,各自解决不同的问题:
阶段 1 解决"信任"问题,阶段 2 解决"加密传输"问题。Customer Gateway 的固定 IP 主要在阶段 1 被使用。
3. 固定 IP 在 认证中的作用
当使用 PSK(Pre-Shared Key)认证时,Customer Gateway 的公网 IP 在 IKE 阶段承担了身份标识的角色:
4. 用 IP 查找对应的 PSK
亚马逊云科技侧的 VPN 网关收到 IKE 请求时,第一步是根据来源 IP 查找”这个 IP 对应哪个 Customer Gateway、该用哪个 PSK”:
5. IP 作为身份参与认证计算
找到 PSK 后,双方要互相证明”我确实持有这个 PSK”。证明方式是各自算一个认证值发给对方比对。计算这个认证值时,会把身份标识也算进去——而在 PSK 模式下,身份标识就是 IP 地址:
这意味着 IP 不仅用来”找到密钥”,还被绑定进了认证结果本身。IP 一变,算出来的认证值就对不上,认证直接失败。
6. 数据传输阶段:外层 IP 头用于路由和 SA 匹配
隧道建立后,每个加密数据包都带有 SPI(隧道编号)和外层源 IP。接收端用 SPI 找到对应的 SA,通常还会校验源 IP 是否与协商时记录的对端地址一致。IP 变化后,数据包也可能被拒绝。
7. 结论:IP 变了会怎样?
核心矛盾:IP 本身是一个网络地址,但在 PSK 认证中却被当成了”身份”来用。一旦地址变了,身份就变了,认证就失败了。
8. 解决思路:把身份标识从 IP 地址换成一个不会随网络变化的东西——证书。
9. 证书认证为什么不依赖固定 IP
10. 什么是数字证书?
数字证书是由一个可信的第三方机构(CA,Certificate Authority)签发的”电子身份证”。它包含:
与证书配对的还有一把私钥,只有证书持有者自己保管。公钥和私钥的关系:
- 私钥签名的数据,可以用公钥验证(证明”这确实是持有者本人操作的”)
- 公钥是公开的(写在证书里),私钥绝对保密
11. 证书认证的三步验证逻辑
对比 PSK 的三步(用 IP 找 PSK → 用 PSK 算哈希 → 比对哈希),证书认证也是三步,但完全不涉及 IP:
12. 验证证书本身是否可信(”这个身份证是真的吗?”)
VPN Endpoint 收到未知 IP 的 IKE 请求时,先完成 DH 密钥交换(IKE_SA_INIT,这一步不需要认证),然后在 IKE_AUTH 阶段根据对方出示的证书及其签发 CA,匹配到对应的 Customer Gateway。
13. 验证对方确实持有该证书的私钥(”拿证书的人是本人吗?”)
证书是公开的,任何人都能拿到一份。所以光出示证书不够,还要证明”我有配对的私钥”:
14. 将身份绑定到本次协商(”这个证明是针对这次连接的吗?”)
和 PSK 类似,认证值中也包含了本次协商的数据(DH 交换结果、随机数),防止重放攻击:
15. IP 变化时证书认证的隧道恢复过程
关键区别:隧道断开后,证书认证可以自动恢复(因为新 IP 发来的连接请求不会被拒绝),而 PSK 认证需要人工到 亚马逊云科技 Console 更新 Customer Gateway IP 并重新配置 VPN Connection,无法自动恢复。
注意:证书认证并不意味着”任何人拿到一张证书就能连上你的 VPN”。亚马逊云科技 侧配置了只信任特定 Private CA 签发的证书,所以只有你自己签发的证书才能通过验证。这等同于 PSK 模式下”只有知道密钥的人才能连接”的安全保证。
1.3 亚马逊云科技侧解决方案
亚马逊云科技 Site-to-Site VPN 支持两种隧道认证方式:
| 认证方式 | Customer Gateway IP | 身份验证 |
| Pre-Shared Key(PSK) | **必填** | 通过 IP + PSK 验证 |
| Private CA 证书 | **可选(可留空)** | 通过证书验证 |
参考:Site-to-Site VPN tunnel authentication options、Customer gateway options
使用证书认证时,亚马逊云科技 文档明确指出:
“If you do not specify the IP address of your customer gateway device, we do not check the IP address. This operation allows you to move the customer gateway device to a different IP address without having to re-configure the VPN connection.”
这意味着:只要对端持有由同一 Private CA 签发的有效证书,无论其 IP 如何变化,亚马逊云科技 都能完成身份验证并建立隧道。
二、方案架构
2.1 整体架构
![]() |
如图所示,方案采用两条 VPN 连接并行的架构:
- 上方链路(Private certificate):办公地点通过卫星互联网线路接入,使用 亚马逊云科技 Private CA 证书认证。Customer Gateway 不指定 IP 地址,通过证书验证身份。VPN Connection 关联到 Transit Gateway,每条连接自带两条隧道(Tunnel 1 / Tunnel 2)实现内置冗余。
- 下方链路(Public IP):办公地点通过当地运营商的固定 IP 线路接入,使用传统的 PSK 认证。Customer Gateway 指定固定公网 IP。
两条 VPN Connection 通过各自的 VPN Attachment 汇聚到同一个 Transit Gateway,TGW 通过 VPC Attachment 连接业务 VPC。当任意一条链路故障时,TGW 自动将流量切换到另一条链路。
2.2 关键组件
| 组件 | 作用 |
| Private CA | 签发 VPN 认证证书 |
| Customer Gateway(Private certificate) | 代表卫星线路侧设备,**不绑定 IP**,通过证书认证 |
| Customer Gateway(Public IP) | 代表固定 IP 线路侧设备,绑定固定公网 IP |
| VPN Connection(Private certificate) | 证书认证的 IPsec IKEv2 隧道,每条含 2 个 Tunnel |
| VPN Connection(Public IP) | PSK 认证的 IPsec 隧道,每条含 2 个 Tunnel |
| Transit Gateway | 汇聚多条 VPN 连接和 VPC Attachment |
| VPC | 承载业务系统 |
三、部署与动手实验
本章以一个完整的动手实验为主线,让读者仅用一个 亚马逊云科技账号即可复现证书认证 VPN 的全流程。我们使用 首尔(ap-northeast-2) 模拟云端,东京(ap-northeast-1) 模拟办公地点,通过两个 Region 的资源还原真实的混合云组网场景。每个步骤同时标注了生产环境的差异,方便读者在真实场景中参考。
3.1 实验架构与角色映射
![]() |
| 实验资源 | Region | 模拟的真实角色 |
| VPC(172.31.0.0/16)+ EC2-Server | 首尔 ap-northeast-2 | 云端业务 VPC + 业务服务器 |
| Transit Gateway | 首尔 ap-northeast-2 | 云端 TGW |
| Private CA + 证书 | 首尔 ap-northeast-2 | Private CA |
| Customer Gateway(证书认证,IP 留空) | 首尔 ap-northeast-2 | 卫星线路侧 CGW |
| VPN Connection(证书认证) | 首尔 ap-northeast-2 | 卫星线路的 VPN |
| VPC(10.0.0.0/16)+ EC2-Client(Ubuntu + StrongSwan) | 东京 ap-northeast-1 | 办公地点内网 + 防火墙 |
生产环境差异:生产环境中,东京侧的 EC2 + StrongSwan 替换为真实的防火墙设备(如 Sophos、FortiGate 等),证书导入和 IPsec 配置在防火墙管理界面完成。亚马逊云科技 侧的操作完全一致。本实验仅验证证书认证链路。PSK 认证链路的配置方式可参考 亚马逊云科技 官方文档。
3.2 Step 1:创建云端基础设施(首尔 Region)
3.2.1 在 ap-northeast-2(首尔) 创建
1. VPC:seoul-vpc,CIDR 172.31.0.0/16,含公有子网、IGW、路由表
![]() |
2. EC2-Server:Amazon Linux 2023,t3.micro,安全组允许 10.0.0.0/16 的 ICMP 和全部流量
![]() |
3. Transit Gateway:seoul-tgw,关联 seoul-vpc
![]() |
![]() |
3.3 Step 2:创建 Private CA 和证书(首尔 Region)
⚠️ 费用提醒:亚马逊云科技 Private CA(General-purpose 模式)按月计费 $400/月,按天折算约 $13/天。测试完立即删除,删除时务必选择永久删除。详见 亚马逊云科技 Private CA Pricing。
CA 层级结构参考:Design a CA hierarchy
![]() |
上图为三层 CA 层级结构。本方案仅使用两层结构(Root CA → Subordinate CA),由 Subordinate CA 直接签发 VPN 客户端证书,满足验证场景的需求即可。
3.3.1 创建根 CA
亚马逊云科技 Private CA 控制台 → Create a private CA → General-purpose 模式 → Root CA → 安装自签名证书(建议有效期 10 年)。
![]() |
3.3.2 创建从属 CA
创建 Subordinate CA,由根 CA 签发证书(建议有效期 5 年)。
![]() |
⚠️ 提醒:从属 CA 的有效期不要设太短。ACM 签发证书的默认有效期为 13 个月(395 天),如果从属 CA 剩余有效期不足 395 天,签发会失败,报错”CA 的签名证书已过期”。
3.3.3 签发客户端证书
ACM → Request a private certificate → 选择从属 CA → 填写域名(如 vpn-client.internal)。
![]() |
3.3.4 导出证书
![]() |
导出三个文件:client-cert.pem(客户端证书)、client-key.pem(私钥)、ca-chain.pem(CA 证书链)。
3.4 Step 3:创建证书认证的 Customer Gateway 和 VPN Connection(首尔 Region)
此步骤创建——卫星互联网线路使用的证书认证 VPN。
3.4.1 创建 Customer Gateway(证书认证)— IP 留空,证书选择上一步签发的客户端证书
![]() |
3.4.2 创建 VPN Connection(证书认证)
- Name:
vpn-certificate - Target gateway type:Transit Gateway →
seoul-tgw - Customer gateway:选择
cgw-certificate - Local IPv4 network CIDR:
10.0.0.0/16⚠️ 提醒:客户网关(本地部署)端 IPv4 CIDR 范围 - Remote IPv4 network CIDR:
172.31.0.0/16⚠️ 提醒:亚马逊云端 IPv4 CIDR 范围
![]() |
创建完成后,在 Tunnel details 中记录 Tunnel 1 和 Tunnel2 的 Outside IP address。
ℹ️ 注意:
虽然 CGW 使用证书创建,亚马逊云科技 仍会在下载的配置文件中显示 PSK。这是因为 亚马逊云科技 为每条隧道都会生成 PSK 作为备用,但实际认证走的是证书。
3.4.3 配置路由
- TGW 路由表:创建静态路由
10.0.0.0/16,指向证书认证 VPN 的 Attachment - VPC 路由表:
10.0.0.0/16→ TGW
3.5 Step 4:创建办公地点模拟环境(东京 Region)
生产环境差异:此步骤在生产环境中不需要。办公地点使用真实的防火墙设备。
3.5.1 在 ap-northeast-1(东京) 创建
- VPC:
tokyo-vpc,CIDR10.0.0.0/16,含公有子网、IGW、路由表
![]() |
3.5.2 EC2-Client-Cert(模拟办公地点防火墙)
- Ubuntu 24.04 LTS
t3.micro- 分配 EIP,禁用源/目标检查
- 安全组放行 UDP 500/4500(IKE/NAT-T)和 SSH
![]() |
⚠️ 为什么用 Ubuntu? StrongSwan 对 IKEv2 证书认证的支持更成熟,而 Ubuntu 的 apt 源中有 StrongSwan 包。
3.6 Step 5:配置办公地点侧 VPN
生产环境差异:生产环境中,此步骤替换为在防火墙管理界面导入证书并配置 IKEv2 证书认证的 IPsec VPN。关键配置项相同:IKEv2、证书认证、由本端发起连接。
以下为实验环境中使用 StrongSwan 的配置步骤。
SSH 到 EC2-Client-Cert:
3.6.1 安装 StrongSwan
3.6.2 配置内核参数
3.6.3 部署证书
⚠️ 提醒:ACM 导出证书时强制要求设置 passphrase,导出的私钥为 ENCRYPTED PRIVATE KEY 格式。StrongSwan 默认无法读取加密私钥,会报 no private key found 错误。必须先用 openssl rsa 解密为明文私钥。
3.6.4 配置 IPsec
将 <TUNNEL1_OUTSIDE_IP> 和 <TUNNEL2_OUTSIDE_IP> 替换为 Step 3 记录的 Tunnel 1 和 Tunnel 2 的 Outside IP。将 <ROOT_CA_DN> 替换为根 CA 的完整 Subject DN(如 C=CN, O=xy, OU=Test, CN=VPN Test Root CA)。
3.6.5 配置密钥引用
3.6.6 启动 StrongSwan
正常输出应包含:
在控制台查看VPN的隧道详情
![]() |
3.7 Step 6:配置回程路由(东京 Region)
生产环境差异:生产环境中,回程路由在防火墙上配置(静态路由指向 VPN 隧道接口),不需要在 VPC 路由表中添加。
在东京 VPC 路由表中添加:
| Destination | Target |
| `172.31.0.0/16` | EC2-Client 实例 ID |
收紧安全组:EC2-Client 的 UDP 500/4500 Source 从 0.0.0.0/0 改为 <Tunnel1 Outside IP>/32 和 <Tunnel2 Outside IP>/32。
3.8 Step 7:验证
3.8.1 Ping 测试
![]() |
# 更改 EC2-Client-Cert 的公网ip,ping 首尔 EC2-Server
![]() |
![]() |
四、总结
亚马逊云科技 Private CA 证书认证为动态 IP 环境下的 Site-to-Site VPN 提供了一种无需额外设备、完全托管的解决方案。其核心优势是:
- Customer Gateway 不需要固定 IP — 通过证书验证身份,适配动态 IP 环境
- 防火墙原生支持 — 主流企业级防火墙(FortiGate、Sophos、Palo Alto 等)都支持 IKEv2 证书认证,不需要额外设备
- 亚马逊云科技 完全托管 — 不需要维护 EC2 或自建 VPN 服务
此方案适用于卫星互联网等无法获得固定公网 IP 的网络环境。
➡️ 下一步行动:
相关产品:
- Amazon EC2 — 安全且可调整大小的计算容量
- Amazon VPC — 隔离云网络
- Amazon Connect — AI 客户体验解决方案
相关文章:
- AWS BYOIP实战:企业公网IP上云迁移方案
- 使用Amazon Site-to-site VPN建立SAP高可用链路
- Amazon CloudFront部署小指南(二十四):将CloudFront “多域名”改造为”多租户”架构
- AI 驱动的跨云网络搭建:用 Claude Code 和 Kiro CLI 实现 AWS-腾讯云 IPSec VPN 双隧道互联
- Farewell to Bastion Hosts: Achieving Secure and Intelligent Operations for Private Subnets Using AWS EICE (EC2 Instance Connect Endpoint) and Chaterm
五、参考资料
- Site-to-Site VPN tunnel authentication options
- Customer gateway options for your Site-to-Site VPN connection
- Private CA Pricing
*前述特定亚马逊云科技生成式人工智能相关的服务目前在亚马逊云科技海外区域可用。亚马逊云科技中国区域相关云服务由西云数据和光环新网运营,具体信息以中国区域官网为准。
本篇作者
AWS 架构师中心:云端创新的引领者探索 AWS 架构师中心,获取经实战验证的最佳实践与架构指南,助您高效构建安全、可靠的云上应用 |
![]() |




















