https协议详解
前言
HTTPS (Hypertext Transfer Protocol Secure) 是基于 HTTP 的扩展,用于计算机网络的安全通信,已经在互联网得到广泛应用。在
HTTPS 中,原有的 HTTP 协议会得到 TLS (安全传输层协议) 或其前辈 SSL (安全套接层) 的加密。因此 HTTPS 也常指 HTTP over
TLS 或 HTTP over SSL。
HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议是HTTP的安全版。HTTP协议有以下的缺点:
- 通信使用明文,内容可能会被窃听。
- 无法验证报文的完整性,所以有可能遭到篡改。
- 不验证通信方的身份,有可能遭遇伪装。
http和https的区别:
- https协议需要到ca申请证书。
- http是明文传输,https则是具有安全性的ssl加密传输协议。
- http和https使用的是完全不同的连接方式,端口也不一样。前者是80,后者是443.
- http的连接是无状态的,https协议是由SSL+http协议构建的可进行加密传输、身份认证的网络协议,比http更安全。
关于https
https目前是最流行的http安全形式。使用https时,所有的http请求和响应数据在发送到网络之前,都要进行加密。https在http下面提供了一个传输级的密码安全层:SSL和TLS。现在不太严格地用术语SSL来表示SSL和TLS。

SSL TLS
SSL/TLS协议为了解决http协议的缺点,希望达到:
- 所有信息都是加密传播,第三方无法被窃听。
- 具有校验机制,一旦被篡改,通信双方立刻会发现。
- 配备身份证书,方式身份被冒充。
SSL是一个二进制协议,与http完全不同,其流量是承载在另一个端口上的(通常是443).如果SSL和http的流量都从80端口到达,大部分web服务器会将二进制SSL流量理解为错误的http并关闭连接。
SSL证书
在服务器向客户端发送公钥这一过程中,客户端可能会收到黑客假冒服务器发送的假的公钥。为了安全考虑,就需要用到SSL证书了。在通信时,服务器将证书发送给客户端,客户端会对证书的真伪进行校验,保证了安全。
SSL证书包含的具体内容有:
- 证书的发布机构CA
- 证书的有效期
- 公钥
- 证书所有者
- 签名
https的通信过程
https的整个通信过程可以分为两大类:证书验证和数据传输阶段。数据传输阶段又分为非对称加密和对称加密两个阶段。
具体流程如下:
- 客户端请求https网址,然后连接到server的443端口(https默认端口)。
- 采用https协议的服务器必须要有一套数字CA证书。颁发证书的同时会产生一个私钥和公钥。私钥由服务端自己保存,不可泄漏。公钥则附加在证书中,可以公开。证书本身附带一个电子签名,可以用来验证证书的完整性和真实性,可以防止证书被篡改。
- 服务器响应客户端请求,将证书传递给客户端。证书包含公钥和大量其他的信息,比如证书颁发机构信息、公司信息和证书有效期等。
- 客户端解析证书并对其进行验证,如果证书不是可信的机构颁布,或者证书的域名与实际域名不一致,或证书已经过期,就会向访问者显示一个警告。如果证书没有问题,客户端就会从服务器证书中取出服务器的公钥A,并生成一个随机码KEY,并使用公钥对其进行加密。
- 客户端会把加密后的随机码KEY发送给服务器,作为后面对称加密的密钥。
- 服务器在收到随机码KEY之后会使用私钥B将其解密。经过以上这些步骤,客户端和服务器终于建立了安全的连接,接下来可以使用对称加密进行通信了。
- 服务器使用密钥(随机码KEY)对数据进行对称加密并发送给客户端,客户端使用相同的密钥解密数据。
- 双方使用对称加密传输所有的数据。

https的缺点
- 在相同网络环境下,https比http的响应时间和耗费的服务器资源更多,因为需要交换更多的数据。
- 在现有的证书机制下,中间人攻击依旧有可能发生。
- https的安全是有范围的,在服务器劫持等情况下几乎起不到作用。

浙公网安备 33010602011771号