Https简介

https协议

Http协议是运行在TCP之上的应用层协议,所有传输的内容都是明文的并且客户端和服务器端都是无法验证对方的身份的。Http通常运行在80端口(监听)。

Https协议则是运行在TCP之上还有一层加密层(SSL/TLS),所有的传输内容都是通过对称加密算法去加密的,而对称加密的密钥则是用服务器上的证书(含有非对称加密公钥)去加密的。Https通常运行在443端口。

下面我们来看下加密图解过程:

加密过程解析:

  1. 客户端发送https请求,服务端返回给客户端证书(证书中含有服务端随机产生的非对称加密的公钥P)==非对称加密的算法首推RSA,可以去看原理,其实就是求一个大数的质数分解==
  2. 客户端验证发送的证书是有有效,是否去信任该证书,并随机产生对称加密的密钥K,使用P对K进行加密。
  3. 将加密后的对称加密密钥K传回给服务端,服务端用非对称加密的私钥将其解开,这样服务端和客户端都有了对称加密密钥K了。(这么做的目的是防止在传输过程中K被泄漏)
  4. 以后客户端会通过K进行数据加密,而服务端也会用K进行解密
  5. 1-2是密钥协商过程,3是加密传输过程,其中密钥协商过程解决了对称加密密钥的传输问题,由于非对称加密比对称加密解析效率低,但是安全的多的特点,因此将非对称加密用来传递对称加密密钥,而用对称加密去加解密数据。这样既保证了对称加密密钥,又保证了数据解析过程中效率。

证书

证书应该是第三方认证机构颁发出来的,具有签名的一种信任凭证。而证书是需要购买的:
免费的:
国内沃通:沃通
国外:woturs

其实,国内这家的根证书也是startssl签发的,实际上也是国外的。

参考链接