本篇内容包括:HTTPS 协议概述,SSL 与 TLS(SSL 与 TLS 概述、SSL证书 和 SSL 与 TLS 二者之间关系),以及 HTTPS 下浏览器访问一个网站的全过程的内容!
HTTPS(Secure Hypertext Transfer Protocol)即安全超文本传输协议,是一个安全通信通道。用于计算机网络的安全通信,已经在互联网得到广泛应用。
HTTPS 是基于 HTTP 的扩展,其相当于 HTTP协议+SSL(安全套接层)/TLS(安全传输层协议)协议加密。因此 HTTPS 也常指 HTTP over SSL 或 HTTP over TLS。
HTTP 的缺点:
HTTPS 与 HTTP 的区别:HTTP 协议的数据传输是通过明文的形式做传输,即使约定了加密方式,但是第一次传输的时候还是明文;鉴于此,HTTPS使用的是非对称加密,为秘钥的传输外层再做一层保护,非对称加密的一组秘钥对中,包含一个公钥和一个私钥。明文既可以用公钥加密,用私钥解密;也可以用私钥加密,用公钥解密。
总的来说:HTTPS 目前是最流行的 HTTP 安全形式。使用 HTTPS 时,所有的 HTTP 请求和响应数据在发送到网络之前,都要进行加密。HTTPS 在 HTTP 下面提供了一个传输级的密码安全层: SSL 和 TLS。
SSL(Secure Socket Layer)即,位于可靠的面向连接的网络层协议和应用层协议之间的一种协议层。SSL 通过互相认证、使用数字签名确保完整性、使用加密确保私密性,以实现客户端和服务器之间的安全通讯。
SSL 协议可分为两层:
TLS:安全传输层协议(TLS)用于在两个通信应用程序之间提供保密性和数据完整性。TLS 记录协议用于封装各种高层协议。作为这种封装协议之一的握手协议允许服务器与客户机在应用程序协议传输和接收其第一个数据字节前彼此之间相互认证,协商加密算法和加密密钥。该协议由两层组成: TLS 记录协议(TLS Record)和 TLS 握手协议(TLS Handshake)
SSL/TLS 协议为了解决 HTTP 协议的缺点,希望达到:
SSL 是一个二进制协议,与 HTTP 完全不同,其流量是承载在另一个端口上的(通常是 443),如果 SSL 和 HTTP 的流量都从 80 端口到达,大部分 web 服务器会将二进制 SSL 流量理解为错误的 HTTP 并关闭连接。
SSL证书是一种数字证书,可以由组织或个人购买,并允许Web服务器和浏览器之间的安全连接。它通过将加密密钥绑定到组织的详细信息来做到这一点。
证书包含有关证书持有者的姓名、证书序列号和到期日期、证书持有者的公钥副本以及证书颁发机构的数字签名等信息。这会对网站进行身份验证,证明它确实是它声称的网站,而不是冒充该网站的黑客。
在服务器向客户端发送公钥这一过程中,客户端可能会收到黑客假冒服务器发送的假的公钥。为了安全考虑,就需要用到 SSL 证书了。在通信时,服务器将证书发送给客户端,客户端会对证书的真伪进行校验,保证了安全。
从本质上讲,它会验证该站点是否如其所说。
TLS 是 SSL3.0 的后续版本。TLS 与 SSL3.0 之间存在着显著的差别,主要是它们所支持的加密算法不同,所以 TLS 与 SSL3.0 不能互操作。
SSL 是 Netscape 开发的专门用户保护 Web 通讯的,目前版本为 3.0。最新版本的 TLS 是 IETF(Internet Engineering Task Force,Internet 工程任务组)制定的一种新的协议。最新版本的 TLS1.0,它建立在 SSL3.0 协议规范之上,是 SSL3.0 的后续版本。两者差别极小,可以理解为 SSL3.1。
https的整个通信过程可以分为两大类:证书验证和数据传输阶段。数据传输阶段又分为非对称加密和对称加密两个阶段。
具体流程如下:
上一篇:redis启动和简单使用