http与https的区别

1、HTTPS介绍

HTTP是明文传输,HTTPS是通过TLS将传输数据加密后传输,更具安全性,简单来说HTTPS=HTTP+SSL/TLS。

http与https的区别_第1张图片

1、客户端向服务端发送加密版本、加密算法种类、随机数信息等。

2、服务端返回客户端发送的信息并带上服务端证书(公钥证书)。

3、客户端效验服务端证书的合法性。

4、验证不通过终止通信,验证通过继续通信,客户端将自己所支持的所有加密算法全部发送给服务端供服务端进行选择。

5、服务端在客户端发送的加密算法中选择加密程度最高的机密方式。

6、服务端将选择的加密算法通过明文返回给客户端。

7、客户端收到服务端返回的加密方式后,使用该加密方式生成随机码(用作后续通信过程中加密的秘钥),使用服务端返回的公钥加密后发送至服务端。

8、服务端收到信息后,使用自己的私钥进行解密,获取加密秘钥。

在之后的通信中,客户端和服务端都将采用该秘钥进行加密。

2、客户端生成证书

以fix双向认证模式,客户端需根据服务端的提供的证书及公钥转成所需的证书

  • openssl pkcs12 -export -in /tempfile/client.crt -inkey /tempfile/client.key -out /tempfile/client.p12
  • keytool -importkeystore -destkeystore /tempfile/client.jks -srckeystore /tempfile/client.p12 -srcstoretype PKCS12 -srcstorepass Za123456
  • keytool -importcert -file /tempfile/root.crt -keystore /tempfile/root.jks

其中,client.crt、client.key为服务端线下提供的证书及公钥,客户端转成.jks文件供程序使用。

其中第一、第二个命令尽量保证一致,以免混记、漏记。

http与https的区别_第2张图片

fix的相关配置如下:

fix.exchange.XXX.sessions[0].socketKeyStore=\\temp\\crypto\\ssl\\qa\\client.jks
fix.exchange.XXX.sessions[0].socketKeyStorePassword=Aa123456
fix.exchange.XXX.sessions[0].socketTrustStore=\\temp\\crypto\\ssl\\qa\\root.jks
fix.exchange.XXX.sessions[0].socketTrustStorePassword=Aa123456

3、服务端选择证书的配置

SSL官网查看域名对应的证书,可看到域名支持的算法种类,域名地址:
SSL官网 SSL Server Test (Powered by Qualys SSL Labs)

以baidu.com为例,列出了支持的TLS版本及对应的算法,其中最后面是指该版本加密强度的强弱。

http与https的区别_第3张图片

你可能感兴趣的:(http,https,网络协议)