HTTPS的实现原理

图片来源:HTTPS 详解一:附带最精美详尽的 HTTPS 原理图 - 个人文章 - SegmentFault 思否

加密流程按图中的序号分为:

  1. 客户端请求 HTTPS 网址,然后连接到 server 的 443 端口 (HTTPS 默认端口,类似于 HTTP 的80端口)。

  2. 采用 HTTPS 协议的服务器必须要有一套数字 CA (Certification Authority)证书。颁发证书的同时会产生一个私钥和公钥。私钥由服务端自己保存,不可泄漏。公钥则是附带在证书的信息中,可以公开的。证书本身也附带一个证书电子签名,这个签名用来验证证书的完整性和真实性,可以防止证书被篡改。

  3. 服务器响应客户端请求,将证书传递给客户端,证书包含公钥和大量其他信息,比如证书颁发机构信息,公司信息和证书有效期等。

  4. 客户端解析证书并对其进行验证。如果证书不是可信机构颁布,或者证书中的域名与实际域名不一致,或者证书已经过期,就会向访问者显示一个警告,由其选择是否还要继续通信。

    如果证书没有问题,客户端就会从服务器证书中取出服务器的公钥A。然后客户端还会生成一个随机码 KEY,并使用公钥A将其加密。

  5. 客户端把加密后的随机码 KEY 发送给服务器,作为后面对称加密的密钥。

  6. 服务器在收到随机码 KEY 之后会使用私钥B将其解密。经过以上这些步骤,客户端和服务器终于建立了安全连接,完美解决了对称加密的密钥泄露问题,接下来就可以用对称加密愉快地进行通信了。

  7. 服务器使用密钥 (随机码 KEY)对数据进行对称加密并发送给客户端,客户端使用相同的密钥 (随机码 KEY)解密数据。

  8. 双方使用对称加密愉快地传输所有数据。

相关推荐
茉莉玫瑰花茶4 分钟前
HTTP 协议详解
网络·网络协议·http
教练、我想打篮球43 分钟前
03 基于 java udp 做一个dns服务器 和 一个dns代理服务器
网络协议·udp·dns·dig·nslookup
Alex_81D2 小时前
Https流式输出一次输出一大段,一卡一卡的-解决方案
nginx·http·https
观音山保我别报错2 小时前
HTTP相关内容
网络·网络协议·http
万里不留行2 小时前
SRS流媒体服务器,配置国标协议对接和HTTPS视频流输出功能
运维·服务器·https·音视频·实时音视频
未来的JAVA高级开发工程师2 小时前
http和https
网络协议·http·https
冰^3 小时前
HTTP 与 HTTPS 深度解析:原理、实践与大型项目应用
java·spring boot·网络协议·spring·http·https·maven
Clown955 小时前
Go语言爬虫系列教程(二) HTTP请求与响应处理详解
爬虫·http·golang
又过一个秋5 小时前
【sylar-webserver】10 HTTP模块
网络·网络协议·http
2501_915909067 小时前
一次复杂接口故障的抓包全过程:四款工具协同作战实录(含 Charles)
websocket·网络协议·tcp/ip·网络安全·https·udp