为了连接付费的 IKEv2 服务器,需要导入对方提供的证书,那么,证书目的应该设定为哪些呢?

2015-11-25 17:45:02 +08:00
 V69EX

导入证书时,默认是所有目的,感觉这是个很大的安全隐患,如果这个 v.p.n 服务器劫持我的通信,完全有可能签署一个木马程序扔给我,还能让我看不出破绽。

那么,仅为了连接这个 v.p.n 的话,证书应该选择哪些“目的”呢?搜索了一会,貌似没人关心过这问题。

6405 次点击
所在节点    问与答
28 条回复
Quaintjade
2015-11-27 01:04:07 +08:00
@jun0205
刚试了下 wosign 签发的证书,好像不行。
客户端是 win10 ,用自签证书没问题(客户端装自签 CA 证书)。

你用的是谁家签的证书?中间证书顺序怎样排?
我记得自签服务器证书要有--flag serverAuth --flag ikeIntermediate ,不知和这个有没有关系。
jun0205
2015-11-27 09:42:43 +08:00
@Quaintjade 不好意思,我是用域名,用户名和密码登录的。用证书登录的我也没弄过。
Quaintjade
2015-11-27 13:31:26 +08:00
@jun0205
我说的就是用户名密码登录( rightauth=psk 或 eap-mschapv2 )。
服务器域名是怎么认证的呢( leftauth=pubkey )?
jun0205
2015-11-27 15:30:44 +08:00
@Quaintjade
去服务器里面拿下来的配置,“ youdomain ”需要修改你对应的。
CA 证书,域名证书和 key 放在 /etc/ipsec.d/ 对应的目录下面
配置里面只配置了域名证书。

要说明的是 leftid=@*.youdomain.com 改成你证书里面签的域名
rightid=*@youdomain.com 这个无所谓填什么,主要是在 iOS 生成描述文件会用到。

config setup
uniqueids=never
#charondebug="cfg 2, dmn 2, ike 2, net 2"
#if uniqueids is yes, ipsec will only allow
#one connection per user, which will cause
#connect failed on iOS

conn %default
keyexchange=ikev2
fragmentation=yes
dpdaction=clear
dpddelay=5s
#auto destroy unused connections
rekey=no
left=%any
leftsubnet=0.0.0.0/0
leftcert=youdomain-cert.pem
#server cert that will send to client
leftsendcert=always
#always send server cert
#not set may cause cert failed
right=%any
rightdns=8.8.8.8,8.8.4.4
#DNS send to client
rightsourceip=10.11.0.0/24
#DHCP Pool for client

conn IPSec-IKEv2
keyexchange=ikev2
leftid=@*.youdomain.com
#your servr name in cert
rightid=*@youdomain.com
#define a suffix for user account
rightauth=eap-mschapv2
#define auth type to EAP
rightsendcert=never
#do not need client cert
eap_identity=%any
#any user can login successfully
auto=add

conn IPSec-IKEv2-EAP
keyexchange=ikev2
ike=aes256-sha1-modp1024!
rekey=no
leftauth=pubkey
rightauth=eap-mschapv2
rightsendcert=never
eap_identity=%any
auto=add

conn CiscoIPSec
keyexchange=ikev1
leftsendcert=never
#do not need server side cert
leftauth=psk
rightauth=psk
#use PSK as client server auth type
rightauth2=xauth
#use xauth as user login auth type
auto=add
Quaintjade
2015-11-27 22:27:36 +08:00
@jun0205
试了还是不行。
应该是中间证书的问题,因为如果把中间证书加入 windows 客户端的受信中间证书里,就能连上。

我觉得配置里面应该有个地方告诉 strongswan 应该发送哪张根证书 /中间证书。
Quaintjade
2015-11-27 22:51:22 +08:00
@jun0205
你能看一下你 windows 证书(本地计算机)里面,中间证书机构目录或者受信任根证书目录里,有没有中间证书?
我觉得如果服务器证书的直接上级证书不在 Windows 客户端证书列表里,那么应该会 13801 错误的。
jun0205
2015-11-28 12:31:31 +08:00
@Quaintjade
计算机里面没有导入过证书。

证书文件放在
/etc/ipsec.d/cacerts/ 域名 CA
/etc/ipsec.d/certs/ 域名 cert ,域名证书文件下面有加入 CA 证书
/etc/ipsec.d/private/ 域名 key

我目前设置的就是这样
Quaintjade
2015-11-28 14:51:42 +08:00
@jun0205 那就奇怪了,我这明显是中间证书未被信任的问题。

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

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

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

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

© 2021 V2EX