HTTPS 详解

HTTPS 是以安全为目标的 HTTP 通道,它在 HTTP 中加入 SSL 层以提高数据传输的安全性。HTTP 被用于在 Web 浏览器和网站服务器之间传递信息,但以明文形式发送内容,不提供任何方式的数据加密,如果攻击者截取了 Web 浏览器和网站服务端之间的传输报文,就可以直接读懂其中的信息,因此 HTTP 不适合传输一些敏感信息,比如身份证号码、密码等。为了数据传输的安全性,HTTPS 在 HTTP 的基础上加入了 SSL 协议,SSL 依靠证书来验证客户的身份,并对客户端和服务端之间的通信进行数据加密,以保障数据传输的安全性,其端口一般是 443

HTTP 的加密流程如下:

  1. 发起请求:客户端在通过 TCP 和服务端建立连接之后(默认使用 443 端口),发出一个请求证书的消息给服务端,在该请求消息里包含自己可实现的算法列表和其他需要的消息。
  2. 证书返回:服务端在收到消息后回应客户端并返回证书,在证书中包含服务端的信息、域名、申请证书的公司、公钥、数据加密算法等
  3. 证书验证:客户端在收到证书后,判断证书签发机构是否正确,并使用该签发机构的公钥确认签名是否有效,客户端还会确保在证书中列出的域名为正在连接的域名。如果客户端确认证书有效,则生成对称密钥,并使用公钥将对称密钥加密
  4. 密钥交换:客户端将加密后的对称密钥发送给服务端,服务端在接收到对称密钥后使用私钥解密
  5. 数据传输:客户端和服务端完成了密钥对的交换,在之后的数据传输过程中,客户端和服务端就可以基于对称加密(加解密使用相同密钥的加密)将数据加密后在网络上传输,保证了网络数据传输的安全性
相关推荐
IPdodo_1 小时前
代理 IP 服务商 SLA 怎么验?7 项指标与 Python 探测脚本实战
运维·python·网络协议·网络安全·代理ip
夜月yeyue3 小时前
SOME/IP-SD 服务发现故障
网络·单片机·网络协议·tcp/ip·安全·服务发现
2501_916008894 小时前
iOS App 请求地址查看,不用配置看到 App 调了哪些接口
网络协议·计算机网络·网络安全·ios·adb·https·udp
爱学堂IT分享6 小时前
码神之路-Netty-从零实现RPC框架+SpringBoot实战项目教程
spring boot·网络协议·rpc
Shawn Dev8 小时前
没有公网 IP,如何让家里的服务器通过域名访问?——Cloudflare Tunnel 实战指南
服务器·网络协议·tcp/ip
幻步智能网络云专线9 小时前
幻步智能网络专线的优势
网络·网络协议
虎王物联9 小时前
Nginx反向代理实现IoT设备HTTPS接入:从证书配置到MQTT over WebSocket实战
运维·物联网·nginx·https
深圳市宝华视联1 天前
Python 读取 IP 视频流简单 Demo
python·嵌入式硬件·opencv·网络协议·tcp/ip·实时音视频·嵌入式实时数据库
DLYSB_1 天前
让 PLC“开口说话”:基于 Modbus TCP 的声光语音告警设计与 Python 调试
python·网络协议·tcp/ip·报警灯
见山是山-见水是水1 天前
围绕HTTP 网络请求实战构建原生体验:设计取舍、实现与排错
网络·网络协议·http·华为·harmonyos