image.png

SSL(Security Sockets Layer )安全套接层

  • 为网络通信提供安全及数据完整性的一种安全协议
  • 是操作系统对外的API , SSL3.0后更名为TLS
  • 采用身份验证数据加密保证网络通信的安全和数据的完整性

    HTTPS 方式与 Web 服务器通信时的步骤

  1. 客户使用 https 的 URL 访问 Web 服务器,要求与 Web 服务器建立 SSL 连接 (浏览器将支持的加密算法信息发送给服务器)
  2. Web 服务器收到客户端请求后,会将网站的证书信息(证书中包含服务器公钥<非对称加密>)传送一份给客户端。HTTPS 中,服务端将公钥发给数字证书认证机构进行安全认证并对公钥进行数字签名,完成后公钥和签名组合成数字证书。(服务器选择一套浏览器支持的加密算法,以证书的形式回发浏览器。)
  3. 在和客户端通信时,服务端将数字证书发给客户端,客户端通过第三方安全认证机构(一般会在浏览器开发时,内置在浏览器中)对数字证书上的签名进行验证。) (浏览器验证证书合法性,并结合证书公钥加密信息发送给服务器)
  4. 客户端的浏览器与 Web 服务器开始协商 SSL 连接的安全等级,也就是信息加密的等级。
  5. 客户端的浏览器根据双方同意的安全等级,建立会话密钥<对称加密>,然后利用服务器公钥会话密钥**加密**,并传送给网站。
  6. Web 服务器利用自己的私钥解密出会话信息,并验证哈希
  7. Web 服务器利用会话密钥加密与客户端之间的通信。

    Http 与 Https 的区别:

  • HTTPS 协议(HyperText Transfer Protocol over Secure Socket Layer):一般理解为HTTP+SSL/TLS,通过 SSL 证书来验证服务器的身份,并为浏览器和服务器之间的通信进行加密。
  • HTTP 的 URL 以 http:// 开头,而 HTTPS 的 URL 以 https:// 开头
  • HTTP 是不安全的,而 HTTPS 是安全的
  • HTTP 标准端口是 80 ,而 HTTPS 的标准端口是 443
  • 在 OSI 网络模型中,HTTP 工作于应用层,而 HTTPS 的安全传输机制工作在传输层
  • HTTP 无法加密,而 HTTPS 对传输的数据进行加密
  • HTTP 无需证书,而 HTTPS 需要 CA 机构颁发的 SSL 证书