4. HTTPS通信(握手)过程

HTTPS的通信过程如下:

  1. 客户端向服务器发起请求,请求中包含使用的协议版本号、生成的一个随机数、以及客户端支持的加密方法。
  2. 服务器端接收到请求后,确认双方使用的加密方法、并给出服务器的证书、以及一个服务器生成的随机数。
  3. 客户端确认服务器证书有效后,生成一个新的随机数,并使用数字证书中的公钥,加密这个随机数,然后发给服 务器。并且还会提供一个前面所有内容的 hash 的值,用来供服务器检验。
  4. 服务器使用自己的私钥,来解密客户端发送过来的随机数。并提供前面所有内容的 hash 值来供客户端检验。
  5. 客户端和服务器端根据约定的加密方法使用前面的三个随机数,生成对话秘钥,以后的对话过程都使用这个秘钥来加密信息。
相关推荐
Dusk_橙子1 分钟前
在运维工作中,Lvs、nginx、haproxy工作原理分别是什么?
运维·nginx·lvs
小wanga14 分钟前
【Linux】网络层、数据链路层、DNS、ICMP协议、NAT技术
linux·运维·网络
IT成长日记1 小时前
Ansible运行原理揭秘:如何用YAML脚本掌控数服务器?
运维·服务器·ansible·架构与原理
千羽星弦1 小时前
Jenkins在Windows上的使用(二):自动拉取、打包、部署
运维·windows·jenkins
Ashmcracker1 小时前
Jenkins链接私有仓库Failed to connect to repository,stderr: No ECDSA...的问题
运维·jenkins·devops
嵌入式-老费1 小时前
Linux上位机开发实战(x86和arm自由切换)
linux·运维·arm开发
猪猪侠|ZZXia1 小时前
# linux有哪些显示服务器协议、显示服务器、显示管理器、窗口管理器?有哪些用于开发图形用户界面的工具包?有哪些桌面环境?
linux·服务器
人间凡尔赛2 小时前
VSCode-Server 在 Linux 容器中的手动安装指南
linux·运维·服务器·docker
板鸭〈小号〉2 小时前
Linux开发工具----vim
linux·运维·vim
XD7429716362 小时前
使用 crontab 定时同步服务器文件到本地
运维·服务器