关于前端:五分钟搞懂HTTPS

37次阅读

共计 1096 个字符,预计需要花费 3 分钟才能阅读完成。

1.HTTP 毛病

http 是应用层协定
次要有这些有余

  • 通信应用明文(不加密),内容可能会被窃听
  • 不验证通信方的身份,因而有可能遭逢假装
  • 无奈证实报文的完整性,所以有可能已遭篡改

2.HTTPS 是什么

HTTP+ 加密 + 认证 + 完整性爱护 =HTTPS

HTTPS 是身披 SSL 外壳的 HTTP ,SSL 次要就做了加密、认证、完整性爱护三件事

2.1 加密

ssl 外面有三种加密形式

  • 散列算法用于生成摘要,验证完整性
  • 非对称加密用于加密身份,非对称算法须要公钥私钥,性能差
  • 对称加密用于加密通信信息,对称加密只须要一个共享秘钥,性能好

    2.2 认证

    如何保障和客户端通信的是真正的服务端?
    服务端能够起申请数字证书认证机构 (CA) 认证
    CA 会用 CA 的私钥把服务器的公钥,还有各种认证信息一起加密成数字证书

    而后客户端用曾经装置的 CA 的公钥去解密数字证书,如果信息合乎,即可实现认证。
    咱们看一下思否的 https 数字证书

2.3 完整性爱护

一段信息,通过摘要算法失去一串哈希值,就是摘要(dijest)。

客户端拿到信息当前,对信息生成一次摘要, 拿到摘要 A。如果该摘要和从数字签名中解密进去的摘要 B 一样,就证实信息是残缺的,没有失落

这个摘要就是数字签名

数字签名和数字证书区别
数字签名是服务器本人签的,为了信息完整性
数字证书是 CA 提供的,外面有服务器的公钥和认证信息,用于认证

3. 具体通信过程

3.1 客户端发送加密申请

客户端向服务器发动申请,申请中蕴含应用的协定版本号、以及客户端反对的加密办法等。

3.2 服务端以证书回应

服务器端接管到申请后,确认单方应用的加密办法、并给出服务器的证书

3.3 客户端确定身份,拿到公钥。生成随机数给服务器

客户端确认服务器证书无效后,生成一个新的随机数,并应用数字证书中的公钥,加密这个随机数,而后发给服务器。

3.4 服务器收到随机数

服务器应用本人的私钥,来解密客户端发送过去的随机数

3.5 正式通信

客户端和服务器端用随机数生成共享秘钥 互相加密通信。

4. 装置 https 证书

  1. 先申请一个证书 集体的有收费的能够申请
  2. 而后下载证书
    nginx 文件夹外面有这两个证书 一个应该是 .key 文件 一个是.crt 文件
  3. 把该文件挪动到 nginx 相干地位
  4. 批改配置,并重启
    ssl_certificate “/etc/nginx/tlsconfig/1_yangkaiqiang.com_bundle.crt”;
    ssl_certificate_key “/etc/nginx/tlsconfig/2_yangkaiqiang.com.key”;
  5. https 配置胜利, 能够拜访了

5. 面试题

  1. 什么是 https
  2. 数字证书是什么
  3. https 的特点
  4. https 通信过程
  5. https 如何保障平安的
正文完
 0