https请求方法总结

本文旨在总结一下本人在HTTPS请求过程中遇到的一些问题,说一说自己的心得。

HTTPS就是基于SSL/TLS的HTTP请求,也就是在HTTP和TCP之间加了一层SSL/TLS,用于数据的加密,加强通讯的安全。SSL加密的握手过程如下:

1、客户端请求服务端;

2、服务端响应客户端,并向客户端下发自己的证书;

3、客户端验证服务端下发的证书,验证成功,取出证书中的公钥;

4、之后客户端和服务端还有一些交互,会产生3个随机数,这3个随机数又会生成一个临时密钥,用来加密之后要传输的数据;

5、临时密钥产生之后,接下来就会正式进行http的会话


这个过程中,就我本人遇到的困惑以及解决办法,这里进行一下简单讲解:

1、客户端如何验证服务器下发的证书?

这个问题没什么神秘的,客户端怎么验证服务器下发的证书呢,其实进行https请求,客户端都是已经安装了一个证书的,这个证书用来验证服务端下发的证书。客户端的证书是CA证书,里面是CA的公钥,服务端下发的证书是CA用私钥签过名的,验证的方法就是用CA的公钥解密,拿到服务器的证书就OK了。

2、SSL双向验证是怎么回事?

对于安全要求不高的https,一般都是单向验证,大多数单向验证都是客户端验证服务端证书,当然也有例外,比如我在一个项目中,请求别人家的服务器,竟然不要求客户单验证服务端的证书,而是服务端验证客户端的证书。对于安全要求高的,会进行双向认证,即客户端验证服务端的证书,服务端的证书也会验证客户端的证书。

3、客户端证书的格式应该是什么格式?

android设备中一般为CRT格式,普通的java客户端为jks格式。




评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Android海纳百川

打赏加微信,送跑车加管理

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值