区别
| http | https |
|---|---|
| 明文 | 加密(ssl加密、安全) |
| 端口80 | 端口443 |
| 不需要证书 | 需要CA证书,有一定费用 |
| 响应效率快 | 响应效率慢,现代优化下,首次访问HTTPS相对HTTP延迟大概10-30ms,后续访问几乎没有差异 |
https为什么需要证书?
-
身份认证
证书由CA(证书颁发机构)签发,证明服务器属于真实所有者,防止中间人伪造网站。 -
传递公钥
证书包含服务器的公钥,用于加密后续生成的会话密钥。 -
信任链机制
- 浏览器内置可信CA根证书列表
- 服务器证书需由可信CA签名
- 形成
根CA → 中间CA → 服务器证书的信任链
⚠️ 自签名证书不被浏览器信任,会显示安全警告。
https为什么加密?
- 防窃听
HTTP传输是明文的,黑客可截获敏感数据(密码、银行卡号)。HTTPS通过加密使数据变成密文,即使被截获也无法破解。 - 防篡改
中间人可篡改HTTP内容(如插入广告或病毒)。HTTPS的完整性校验会识别篡改,阻止数据被修改。 - 防冒充
HTTP无法验证网站真实性,黑客可伪造钓鱼网站。HTTPS证书强制验证服务器身份,确保你访问的是真实网站。
https加密流程是什么?
-
Client Hello
浏览器发送支持的加密算法列表 + 随机数A。 -
Server Hello
服务器选择加密算法,下发证书 + 随机数B。 -
验证证书
浏览器检查证书:
✅ 是否由可信CA签发
✅ 域名是否匹配
✅ 是否在有效期内 -
生成会话密钥
- 浏览器用证书中的公钥加密随机数C,发送给服务器。
- 服务器用私钥解密获取随机数C。
- 双方用随机数A+B+C生成对称加密密钥(后续通信使用)。
-
加密通信
-
后续所有数据传输均用对称加密(如AES-256),速度快且安全。 非对称加密只用于交换密钥,对称加密用于传输数据,兼顾安全与效率。
什么是对称加密和非对称加密?
| 区别点 | 对称加密:用同一把钥匙加密码解密 | 非对称加密:公钥加密,私钥解密 |
|---|---|---|
| 特点 | “高速通道”,但需秘密传递钥匙 | 是“信任锚点”,用数学安全解决钥匙传递问题 |
| 理解 | 两人用同一把钥匙锁保密箱传递物品(一旦钥匙被偷,箱子即被打开)。 | 接收者将打开的挂锁(公钥) 发给发送方,发送方用挂锁锁箱后寄回,仅接收者有钥匙(私钥) 能开箱。 |
| 优点 | 极快(GB/s级)、比非对称加密快100-1000倍依赖密钥保密性、加密大量数据资源消耗低(CPU/内存占用低) | 解决密钥分发问题(公钥可公开)天然支持身份验证(私钥签名)N个用户只需维护N对密钥依赖数学难题(如大数分解)、安全交换密钥/数字签名 |
| 缺点 | 密钥分发不安全若密钥泄露,通信全盘暴露N个用户需维护 N×(N-1)/2 个密钥(管理复杂) | 速度极慢(比对称加密慢100-1000倍)加密数据长度受限(如RSA-2048最多加密245字节)计算资源消耗大(CPU/内存占用高) |
| 核心原理 | - 加密与解密使用相同密钥发送方用密钥加密明文 → 生成密文 → 接收方用同一密钥解密密文。- 常见算法AES(高级加密标准,如AES-256)、DES、3DES、ChaCha20。 | - 使用一对密钥 |
-
- 公钥(Public Key):公开给所有人,用于加密数据。
- 私钥(Private Key):仅持有者保存,用于解密数据。
- 数学单向性公钥加密的数据只能由对应私钥解密(即使知道公钥也无法反推私钥)。- 常见算法RSA(2048位以上)、ECC(椭圆曲线加密)、Diffie-Hellman。 | | 典型场景 | - HTTPS数据传输阶段、Wi-Fi加密(WPA2)、ZIP加密压缩。 | HTTPS密钥交换阶段、SSH登录、数字签名、区块链交易。 | | 流程对应关系 | C[双方用随机数生成会话密钥]--> D[后续数据用AES-256加密传输] | [浏览器用服务器公钥加密随机数C]--> B[服务器用私钥解密] | | 工作流程 | A[明文]--密钥加密--> B[密文]B --同一密钥解密--> C[明文] | A[明文]--接收方的公钥加密--> B[密文]B --接收方的私钥解密--> C[明文]
https为什么响应速度慢?
主要延迟来自TLS握手阶段:
| 步骤 | HTTP | HTTPS | 延迟原因 |
|---|---|---|---|
| TCP握手 | 1-RTT | 1-RTT | 基础连接建立 |
| TLS握手(非对称加密) | 无 | 1-2 RTT | 证书传输、密钥交换等计算 |
| 后续通信 | 明文 | 对称加密 | 加密/解密消耗少量CPU(可忽略) |
性能优化方案:
- TLS 1.3
将握手缩短到1-RTT(甚至0-RTT),速度提升50%以上。 - 会话复用 (Session Resumption)
复用之前协商的密钥,跳过握手过程。 - OCSP Stapling
由服务器提供证书状态,避免浏览器额外查询CA。 - HTTP/2 + HTTPS
多路复用技术抵消加密开销,整体性能反超HTTP。