Https原理

简介

http其实由HTTP+SSL/TLS组成,相当于http加上一层加密算法,客户端与服务端传输数据都是加密的。一开始采用非对称加密,后续采用对称加密,因为持续的非对称加密很耗费时间性能。加密过程如下:

1.客户端发起HTTPS请求

2.服务端提前配置

应用https协议的服务器必须要一套HTTPS证书,证书可自生成(免费),可向第三方组织申请(收费)。证书本质上为公钥与私钥。Java环境需要导入证书到jdk/jre security路径下。

3.传送证书

4.客户端解析证书

客户端需要验证证书有效性,可向第三方验证。自制作证书会在浏览器提示“您的连接不是私密连接”,点击继续为信任自制证书。

5.客户端发送对称加密秘钥

生成随机值(后续处理即为对称加密的秘钥),利用证书(公钥)加密随机值。

6.服务端解密

服务端私钥解密获取随机值(处理即为对称加密的秘钥)

7.开始运用对称加密的秘钥进行加密传输

8.客户端用对称加密的秘钥解密

开发相关

开发时,一般http接口改造为https接口,服务端导入证书即可。渠道方服务端访问权益方服务端对接HTTPS接口需要校验证书有效性有两种方法

1.导入https证书(公钥),可向权益方索取,网络通情况下也可以chrome访问接口下载证书(公钥)。java开发环境下可以导入到JDK/JRE 下的security。注意服务需要重启。

2.也可以跳过证书有效性校验:无条件信任对方返回的证书(公钥)。

新建SSLClient继承DefaultHttpClient,重写相关方法即可。

你可能感兴趣的:(Https原理)