HTTPS 是如何建立安全连接的

举报
yd_287029236 发表于 2026/11/03 20:07:47 2026/11/03
【摘要】 HTTPS 已经成为互联网通信的默认标准,但它背后的握手过程对很多开发者来说仍然是黑盒。对称加密、非对称加密、数字证书各自承担什么角色,握手为什么这样设计,本文用通俗的方式梳理 HTTPS 建立安全连接的完整过程

一、HTTPS 要解决什么问题
HTTP 通信是明文的,存在三类风险:窃听,第三方可以读取传输内容;篡改,第三方可以修改数据而不被发现;冒充,客户端可能连上假冒的服务器。HTTPS 通过加密解决窃听,通过消息校验解决篡改,通过证书解决冒充。

值得注意的是,HTTPS 并不单独发明新的加密算法,而是组合使用已有的密码学工具,并设计了一套协商流程。

2、对称加密与非对称加密的分工
对称加密使用同一把钥匙加密和解密,速度快,适合传输大量数据。问题是钥匙本身如何安全地送达对方,直接在网络上传钥匙等于没有加密。

非对称加密使用一对钥匙,公钥加密的内容只有私钥能解开。它解决了钥匙分发问题,但计算速度慢,不适合加密正文。

HTTPS 的设计是用非对称加密协商出对称密钥,再用对称密钥加密后续通信。两种方式各取所长:非对称加密只在握手阶段使用,正文传输全部走快速的对称加密。

三、证书解决公钥的信任问题
非对称加密还有一个漏洞:客户端如何确认拿到的公钥真的属于目标服务器,而不是中间人替换过的假公钥。这就是数字证书的作用。

证书由受信任的证书颁发机构签发,内容包括服务器域名、公钥和颁发机构的数字签名。客户端内置了权威机构的根证书,收到服务器证书后验证签名链条,确认公钥确实经过权威机构背书。验证通过,才继续握手;验证失败,浏览器会给出明确警告。

四、握手过程的简化版本
整个握手可以概括为四步。客户端发起连接并告知支持的加密套件。服务器返回选定的套件和自己的证书。客户端验证证书,生成一个随机数作为会话密钥的原料,用服务器公钥加密后发给服务器。双方各自计算出相同的会话密钥,之后的通信全部使用该密钥对称加密。

新版本协议进一步优化了这个过程,减少握手往返次数,甚至支持会话复用,降低重复连接的开销。

五、常见误解
认为 HTTPS 全程使用非对称加密,实际上它只用于密钥协商。认为有证书就绝对安全,实际上证书被错误信任、私钥泄露、配置使用过期协议版本都会破坏安全性。认为 HTTPS 会显著拖慢性能,实际上现代硬件和协议优化下,开销已经很小,而明文 HTTP 面临的风险远远大于这点成本。

六、总结
HTTPS 的精髓是分层组合:证书解决身份可信,非对称加密解决密钥交换,对称加密解决传输效率。理解这个分工,就能理解为什么私钥必须严格保管、为什么证书链必须完整、为什么旧协议版本要及时下线。安全不是单个算法的结果,而是一整套协作流程的结果。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。