GlassFish Client 对 Server 的单向SSL验证

简单介绍GlassFish的Client 对 Server 的单向验证。

注意:上图使用的协议为TLSv1.2, 加密算法为 ECDHE_RSA若使用其他的协议或算法,一些步骤细节会有出入。

1) Client 发送 Hello请求

2) Server 发送 Hello响应

3) Server 发送自己的证书或证书链,包含Server的公钥及相对应CA的公钥

4) Server 通过Elliptic Curve Diffie Hellman协议生成的临时公私钥与临时签名。它将发送临时公钥 (可选,仅适用于 ECDHE 或 DHE算法) 和 Hello done消息

此时,Client需要验证Server证书(或证书链)的有效性:

首先,Client是在GlassFish上建立的,它会查看在GlassFish里的存放证书的文件,根据其官方文档(安全手册 p26) 的说明,GlassFish有两个存放证书的文件:

  • cacerts.jks 包含着被GlassFish信任的CA (root 或 intermediate) 的证书,包括它们的公钥
  • keystore.jks 包含着GlassFish的一些证书,包括私钥

其次,根据政府服务器发来的证书,Client 会检测此证书的CA信息,然后与cacerts.jks的对应CA信息对比,以检验刚发来的证书是否有效。

5) 若有效,则Client通过Elliptic Curve Diffie Hellman协议生成的临时公私钥。临时公钥被发送给Server,此时Client和Server同时生成相同的预主密钥(pre master secret),然后进一步的生成主密钥(master secret)

6) 7)Client现在发送一个ChangeCipherSpec记录,告诉Server,“从现在开始我发送你的所有消息都将被主密钥加密",紧接着发送Finished消息

8)Server 发送一个ChangeCipherSpec记录,告诉Client,“从现在开始我发送你的所有消息都将被主密钥加密",紧接着发送Finished消息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值