使用 strongSwan 搭建以证书认证的 IKEv2 服务器时出现的一点问题

2017-03-07 22:30:21 +08:00
 yhjserv

日志 配置文件

用 Windows 10 连接的日志如上

从日志可以看到有一句 no trusted certificate found for 'VPN Client' to verify TLS peer

可是证书应该是没问题的,因为相同的证书在 Android 上的 strongSwan 就能成功连上,并且用的也是 EAP-TLS

6245 次点击
所在节点    服务器
11 条回复
monsterxx03
2017-03-07 23:17:22 +08:00
证书给 windows 用的话,记得生成的时候要设置 subjectAltName 的, 看看这篇: https://wiki.strongswan.org/projects/strongswan/wiki/Win7CertReq
yhjserv
2017-03-07 23:52:37 +08:00
@monsterxx03 服务器的证书应该是没问题的,因为是服务器拒绝了 Windows 连这个服务器,而且从 log 上也能看出来
monsterxx03
2017-03-08 00:40:48 +08:00
我是说给 client 端的证书,那句 log 就是 server 不认 client 的证书。

当时 windows 的证书是怎么生成的? 用 ipsec pki 生成的话,有加 --san my_server_domain.example.org
yhjserv
2017-03-08 01:16:24 +08:00
使用下面的命令生成了客户端证书
```
ipsec pki --pub \
--in test.key | \
ipsec pki --issue \
--cacert ../rootca/vpnca/vpnca.crt \
--cakey ../rootca/vpnca/vpnca.key \
--dn "C=CN, O=IKEv2 VPN TEST, CN=Test VPN Client" \
--san my_server_domain.example.org \
--outform pem > test.crt
```

证书信息
```
$ openssl x509 -in test.crt -noout -text
Certificate:
Data:
Version: 3 (0x2)
Serial Number: 5911216928624408369 (0x5208dc7a44eef731)
Signature Algorithm: sha512WithRSAEncryption
Issuer: CN = Root CA, C = CN, O = IKEv2 VPN TEST
Validity
Not Before: Mar 7 17:04:57 2017 GMT
Not After : Mar 6 17:04:57 2020 GMT
Subject: C = CN, O = IKEv2 VPN TEST, CN = Test VPN Client
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (8192 bit)
Modulus:
00:......:17
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Authority Key Identifier:
keyid:32:6A:60:CC:11:2E:7C:5F:B7:58:C2:8F:5F:6B:64:CB:69:AB:CD:8E

X509v3 Subject Alternative Name:
DNS:my_server_domain.example.org
Signature Algorithm: sha512WithRSAEncryption
64:......:53
```

服务端依然不接受这张证书
monsterxx03
2017-03-08 09:16:50 +08:00
看上去没啥问题啊,话说你的域名只是个示例吧,实际连服务器使用的域名要和 server 证书的 cn 对得上才行。 strongswan 坑好大的,能用其他的还是别折腾了
Terenc3
2017-03-08 09:46:48 +08:00
将 CN 字段更换为你的域名!

https://enginx.cn/2016/06/19/配置基于 strongswan-的 ikev2.html
yhjserv
2017-03-08 15:02:21 +08:00
@monsterxx03 是的,我是用正确的信息将证书生成后把敏感信息替换掉了而已

@Terenc3 这是客户端证书的问题,另,你提供的链接 404 了
Terenc3
2017-03-08 23:02:26 +08:00
https://enginx.cn/2016/06/19/%E9%85%8D%E7%BD%AE%E5%9F%BA%E4%BA%8Estrongswan-%E7%9A%84ikev2.html

链接包含中文,没有转换过来。以上是正确有效的链接。
Terenc3
2017-03-08 23:05:24 +08:00
@yhjserv 客户端证书只需要 CA 和服务器证书一致就行了。可是服务器证书的 CN 字段需要填写你的域名。
yhjserv
2017-03-09 23:42:58 +08:00
@Terenc3 你提供的文章对我来说可能没有什么用,因为这篇文章使用的是密码登录而不是证书登录。
我相信我的配置文件里面写得很清楚,里面没有配置任何的密码登录
Terenc3
2017-03-10 11:43:26 +08:00
@yhjserv 估计你要再搜索点资料了。我的 iKEv2 使用数字证书和用户名验证,但是我的这篇文章没有写 radius 的部分,祝你顺利。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/345715

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX