V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yhjserv
V2EX  ›  服务器

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

  •  
  •   yhjserv · 2017-03-07 22:30:21 +08:00 · 6201 次点击
    这是一个创建于 2816 天前的主题,其中的信息可能已经有所发展或是发生改变。

    日志 配置文件

    用 Windows 10 连接的日志如上

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

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

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

    当时 windows 的证书是怎么生成的? 用 ipsec pki 生成的话,有加 --san my_server_domain.example.org
    yhjserv
        4
    yhjserv  
    OP
       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
        5
    monsterxx03  
       2017-03-08 09:16:50 +08:00 via iPhone
    看上去没啥问题啊,话说你的域名只是个示例吧,实际连服务器使用的域名要和 server 证书的 cn 对得上才行。 strongswan 坑好大的,能用其他的还是别折腾了
    Terenc3
        6
    Terenc3  
       2017-03-08 09:46:48 +08:00 via iPhone
    将 CN 字段更换为你的域名!

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

    @Terenc3 这是客户端证书的问题,另,你提供的链接 404 了
    Terenc3
        8
    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
        9
    Terenc3  
       2017-03-08 23:05:24 +08:00
    @yhjserv 客户端证书只需要 CA 和服务器证书一致就行了。可是服务器证书的 CN 字段需要填写你的域名。
    yhjserv
        10
    yhjserv  
    OP
       2017-03-09 23:42:58 +08:00
    @Terenc3 你提供的文章对我来说可能没有什么用,因为这篇文章使用的是密码登录而不是证书登录。
    我相信我的配置文件里面写得很清楚,里面没有配置任何的密码登录
    Terenc3
        11
    Terenc3  
       2017-03-10 11:43:26 +08:00 via iPhone
    @yhjserv 估计你要再搜索点资料了。我的 iKEv2 使用数字证书和用户名验证,但是我的这篇文章没有写 radius 的部分,祝你顺利。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5860 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 02:12 · PVG 10:12 · LAX 18:12 · JFK 21:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.