Android .sswan配置转ipsec.conf及Ubuntu下StrongSwan连接WatchGuard VPN失败的参数配置咨询
Android .sswan配置转ipsec.conf及Ubuntu下StrongSwan连接WatchGuard VPN失败的参数配置咨询
你好,我来帮你梳理下Ubuntu上StrongSwan连接WatchGuard VPN失败的问题~从你提供的错误日志和配置来看,核心问题是证书配置逻辑搞混了,加上IKE提议和服务器不匹配,我给你一步步拆解和修正:
先搞懂错误原因
'username_from_admin' not confirmed by certificate:你把WatchGuard的CA证书当成了自己的客户端证书配置在leftcert里,导致StrongSwan认为你的身份应该是CA的标识,和你设置的用户名不匹配,所以报错。no private key found for 'O=WatchGuard_Technologies...CA':CA证书是用来验证服务器身份的公钥证书,本身没有对应的私钥,但你把它设成了客户端证书,StrongSwan尝试用它做身份认证,自然找不到私钥。
修正步骤和正确配置
第一步:整理证书文件位置
- 把你的
rootca.pem(WatchGuard的CA证书)移动到/etc/ipsec.d/cacerts/目录下,这个目录专门放信任的CA证书,用来验证服务器的证书合法性。 - 如果你的
.sswan文件里还嵌入了你自己的客户端证书和私钥(不是CA证书),需要把它们提取出来:- 客户端证书放到
/etc/ipsec.d/certs/目录,文件名比如user-cert.pem - 客户端私钥导出成PEM格式,放到
/etc/ipsec.d/private/目录,文件名比如user-key.pem,注意私钥权限要设为600(执行sudo chmod 600 /etc/ipsec.d/private/user-key.pem)
- 客户端证书放到
第二步:修改ipsec.conf配置
替换原来的连接配置,以下是适配WatchGuard IKEv2 + EAP用户名密码认证的配置:
conn XYZ-IKEv2-VPN leftsourceip=%config # 自动获取VPN分配的IP auto=add # 开机不自动启动,手动连接 # 匹配日志里服务器协商的IKE参数,原来的aes256gmac和实际协商的aes256cbc不匹配 ike=aes256-cbc-sha256-modp2048 # WatchGuard常用的ESP加密组合,也可以根据实际协商结果调整 esp=aes256-gcm-null-modp2048 keyexchange=ikev2 right=8.x.x.x # VPN服务器公网IP rightsubnet=172.30.x.x/24 # 内网子网,建议加上掩码避免歧义 rightid=%any # 或者直接写服务器CA的标识:O=WatchGuard_Technologies, OU=Fireware, CN=Fireware IKE (SN XYZ 2023-03-14 13:57:23 UTC) CA leftid=%eap_id # 用EAP用户名作为身份标识 eap_identity=username_from_admin # 指定你的EAP认证用户名 leftauth=eap-mschapv2 # 如果是密码认证,用这个EAP方法(管理员给的是密码就用这个) rightauth=pubkey # 服务器用证书认证,我们用CA证书验证它 ca-cert=/etc/ipsec.d/cacerts/rootca.pem # 指定信任的CA证书
如果你有自己的客户端证书(不是CA),需要在配置里加上
leftcert=/etc/ipsec.d/certs/user-cert.pem和leftauth=pubkey,eap-mschapv2(双因素认证),但从你的错误看,目前应该是纯EAP密码认证,所以不需要这两行。
第三步:确认ipsec.secrets配置
你的这个配置是对的,保持不变:
username_from_admin : EAP "password_from_admin"
第四步:验证并重启服务
- 检查证书目录权限:确保
/etc/ipsec.d/下的所有子目录文件属主是root,权限合理:
sudo chown -R root:root /etc/ipsec.d/ sudo chmod -R 600 /etc/ipsec.d/private/ sudo chmod -R 644 /etc/ipsec.d/cacerts/ /etc/ipsec.d/certs/
- 重启StrongSwan服务:
sudo systemctl restart strongswan-starter
- 尝试连接:
sudo ipsec up XYZ-IKEv2-VPN
额外说明
- 日志里显示服务器返回了一个未知的Vendor ID,这个不用管,不影响连接。
- 如果还是失败,可以查看更详细的日志:
sudo journalctl -u strongswan-starter -f,实时看连接过程中的细节,方便排查。
备注:内容来源于stack exchange,提问作者T3.0
相关产品推荐
相关产品推荐

