首页 >> 学识问答 >

问ssl 连接介绍 加密通信原理详解

2026-11-12 17:00:46

答

ssl 连接是客户端和服务端之间建立的加密通信通道,现在官方已经升级为 tls 协议,但是行业习惯依旧经常叫 ssl 连接,它主要解决明文传输不安全的问题,普通 http 传输数据是裸奔状态,中途抓包就可以看到账号密码等敏感信息,ssl 连接通过证书 非对称加密 对称加密组合机制,完成身份校验,协商会话密钥,之后所有传输的数据都会加密,同时还具备完整性校验能力,防止传输途中数据被篡改,我们日常访问 https 网站,底层就是建立 ssl 连接之后再传输 http 报文,很多新手以为 ssl 只是单纯加密,忽略了身份认证这个核心作用,服务端证书可以证明这个网站确实是对应的官方站点,避免钓鱼网站冒充,ssl 连接建立是在 tcp 三次握手完成之后,也就是 tcp 已经连通,再做 ssl 握手协商,协商成功之后才正式传输业务数据,整个握手过程涉及证书校验 密钥交换 加密套件协商,不同版本 ssl tls 加密强度不一样,老旧 ssl3.0 已经存在严重漏洞,现在生产环境全部禁用,统一使用高版本 tls,理解 ssl 连接,还要分清单向认证和双向认证,普通网站一般是单向认证,只校验服务端证书,企业内部系统 支付接口经常使用双向 ssl 连接,客户端也要提供证书,双方互相验证身份。

ssl 连接核心组成对照表

组成部分说明
数字证书由 ca 机构签发,包含服务端公钥 域名 有效期 签名
非对称加密握手阶段使用,用来安全协商对称密钥
对称加密握手完成之后业务数据传输使用,速度更快
摘要校验校验数据完整性,确认报文没有中途篡改
加密套件一组算法组合,包含密钥交换算法 对称加密算法 摘要算法

ssl 连接完整握手流程

第一步 tcp 三次握手,客户端和服务端先建立基础 tcp 连接

第二步 客户端发送 hello 报文,告知支持的 tls 版本 加密套件列表 随机数

第三步 服务端返回 hello,选定 tls 版本和加密套件,同时生成服务端随机数,并且下发数字证书

第四步 客户端校验证书,检查证书是否过期 是否由可信 ca 签发 域名是否匹配,校验通过之后,客户端生成预主密钥,用证书里面的公钥加密之后发给服务端

第五步 服务端使用私钥解密,拿到预主密钥,双方根据两个随机数加预主密钥,计算出相同的会话密钥

第六步 双方发送 finished 报文,验证握手信息,确认 ssl 连接协商完成,后续业务报文全部使用会话密钥做对称加密传输

单向认证与双向认证区别

单向 ssl 连接,也就是普通 https 网站模式,客户端验证服务端证书,客户端不需要证书,绝大多数互联网网站都是这种模式

双向 ssl 连接,也叫双向证书认证,除了服务端下发证书,客户端也要携带自己的客户端证书,服务端同时校验客户端身份,适合金融 内网接口 高安全业务场景,配置比单向认证复杂很多

深度重点知识点

第一 ssl 连接是建立在 tcp 之上,属于应用层之上的安全层,不会替代 tcp,只是给 tcp 通道增加加密保护

第二 老旧 ssl 版本比如 ssl2.0 ssl3.0 已经淘汰,存在心脏 bleed 等高危漏洞,服务器必须关闭,现在主流是 tls1.2 tls1.3,tls1.3 简化握手流程,握手速度更快,安全性更高

第三 证书过期 域名不匹配 证书不受信任,浏览器就会弹出 ssl 连接不安全警告,这类报错是运维开发高频问题

第四 会话复用,已经成功建立的 ssl 连接,短时间内再次连接可以复用之前的会话参数,减少握手耗时,提升访问性能

第五 加密套件选择,弱加密套件会降低 ssl 连接安全等级,生产环境需要禁用弱套件,只保留安全算法组合

ssl 连接常见异常场景

证书不受信任,本地没有导入根 ca 证书

证书过期,没有及时续签证书

域名不一致,证书绑定域名和访问域名不一样

加密套件不兼容,客户端和服务端没有共同支持的加密套件

网络中间设备拦截,代理防火墙破坏 ssl 连接,出现中间人风险

综合来看,ssl 连接本质就是 tcp 连通之后,通过证书身份校验,非对称加密协商对称会话密钥,之后使用对称加密传输业务数据,兼顾安全和传输效率,普通互联网 https 是单向认证,高安全业务使用双向 ssl 连接,现在虽然名称升级 tls,大家依旧习惯称 ssl 连接,配置排错重点关注证书有效期 域名匹配 加密套件版本兼容。

【常见问题】

问题 1 ssl 连接和 https 是什么关系

回答 1 ssl 连接是 https 底层安全通道,ssl 连接建立成功之后,http 报文在这个加密通道里面传输,就变成 https,ssl 连接是 https 可以加密的基础。

问题 2 ssl 连接是在 tcp 握手之前还是之后建立

回答 1 ssl 连接是在 tcp 三次握手完成之后才开始握手协商,ssl 连接依赖已经打通的 tcp 通道,不能脱离 tcp 直接建立 ssl 连接。

问题 3 ssl 连接双向认证是什么意思

回答 1 ssl 连接双向认证就是客户端和服务端互相校验证书,ssl 连接普通网站一般只校验服务端证书,双向 ssl 连接多用于金融和企业内部高安全接口。

问题 4 ssl 连接报错证书不受信任怎么处理

回答 1 ssl 连接出现证书不受信任,一般是根证书没有导入或者证书不是可信 ca 签发,ssl 连接排错需要检查 ca 根证书,或者更换正规 ca 签发的证书。

【免责申明】

本文内容仅作为 ssl 连接介绍的学习参考,不同服务器 nginx apache 操作系统配置 ssl 连接参数存在差异,老旧 ssl 协议存在安全风险,生产环境部署请参考官方安全规范,因证书配置错误或者使用废弃协议造成安全隐患,由部署人员自行承担。

 

相关阅读

标签: ssl连接介绍
最新文章
站长推荐