HTTPS建立连接原理、SSL工作原理

HTTPS与HTTP相比有什么区别?
HTTPS保证安全的原理是什么?
HTTPS是如何建立连接的?

巨人的肩膀
3.1 HTTP 常见面试题 | 小林coding

HTTP与HTTPS的区别

  • HTTP是超文本传输协议,传输的内容是明文(HTTP1.1及之前版本)。HTTPS在TCP与HTTP层之间引入SSL/TLS安全协议,传输的报文都是加密传输的
  • HTTP建立连接简单,TCP三次握手后即可进行报文传输。而HTTPS在TCP三次握手之后,还需要进行SSL/TLS复杂的交互过程之后,才可以进行加密报文传输
  • HTTP占用80端口,HTTPS占用443端口
  • HTTPS协议需要向CA(证书权威机构)申请数字证书,来保证服务器的身份是可信的。

HTTPS安全的原理

通过混合加密的方式保证报文的机密性,采用了对称加密和非对称加密两种方式结合的加密方式

  • 在通信建立前采用非对称加密的方式交换会话密钥
  • 在通信过程中使用对称加密(会话密钥)的方式加密报文
    看懂了下面的SSL的原理你就懂了。

SSL原理

数字证书,这张图直接看懂:

HTTPS建立连接

本来想用文
还是一张图弄懂:

  1. 首先是TCP的三次握手,建立TCP连接
  2. 然后客户端向服务器发送请求,请求中包含了客户端支持的TLS版本、一个随机数、密码套件
  3. 服务器接收到请求,将客户端发送过来的随机数保留下来,然后响应,响应内容:服务器生成的随机数、数字证书、确认TLS版本、确认密码套件
  4. 客户端接收到响应后,将服务器生成的随机数保留下来,然后验证数字证书的权威,然后从数字证书中取出公钥,重新生成一个随机数pre-master,利用公钥对报文进行加密。报文中的内容:新生成的随机数pre-master、加密通信算法改变的通知、对之前的数据生成一个摘要交给服务器验证。同时,利用这三个随机数计算出会话密钥
  5. 服务接收到请求后,将客户端的第二个随机数保留下来,然后对加密通信算法改变通知进行确认,验证客户端摘要的正确性。同样,服务器也有了这三个随机数,能够生成同样的会话密钥
    至此,SSL的加密通信已建立,接下来所有的报文都会利用会话密钥进行加密,因为这个会话密钥是相同的,所以在加密、解密时效率很高。
posted @   秋天Code  阅读(82)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示