网站为什么需要 SSL 证书来实现 https?

网站为什么需要 SSL 证书才能实现 HTTPS

一句话先讲清楚:HTTPS = HTTP 协议 + SSL/TLS 加密层,而 SSL 证书是服务器的合法身份凭证,没有证书,浏览器就无法完成身份校验、建立加密通道,也就跑不起来 HTTPS。

现在技术上一般叫 TLS(SSL 是旧名称,日常仍习惯叫 SSL 证书)

1. 核心两大作用:加密 + 身份认证

① 传输加密(防窃听、防篡改)

普通 HTTP:浏览器和服务器之间传输的是明文。 比如你填账号密码、手机号,数据包在网络链路中(路由器、运营商、公共 WiFi)可以被直接抓包看到内容;中间人还能篡改返回的页面内容。

启用 TLS + 证书之后:

  • 浏览器和网站服务器协商一套对称加密密钥
  • 后续所有通信数据都是密文,就算被抓包,第三方也无法解密读取和修改数据

这里用到非对称加密来安全交换对称密钥,而非对称加密的公钥,就存放在 SSL 证书里。

② 身份认证(防钓鱼,确认你访问的是真网站)

这是证书不可替代的价值: 证书由 CA 证书机构签发,绑定域名,里面包含:

  • 网站域名
  • 网站公钥
  • CA 机构签名、有效期等信息

浏览器访问 HTTPS 网站时:

  1. 服务器把 SSL 证书发给浏览器
  2. 浏览器用 CA 根证书验证证书签名是否合法
  3. 校验证书域名是否和你访问的域名一致 ✅ 校验通过:建立加密连接,地址栏显示小锁 ❌ 校验失败:浏览器直接弹出危险警告,阻止访问

如果没有 SSL 证书:浏览器无法确认服务器身份,中间人可以伪造服务器,你的加密连接就会连到钓鱼网站。

2. 能不能不用证书做加密?

技术上可以做纯加密,但浏览器不认。 你可以自己生成一个自签名证书,也能建立加密通道。但:

  • 自签名证书没有 CA 背书,浏览器识别为不安全
  • 访问时会强制报安全风险,普通用户不敢继续打开 所以公网对外服务,必须使用 CA 签发的 SSL 证书。

3. 业务层面的必要性(除安全之外)

  1. 浏览器标识:HTTP 网站在 Chrome/Edge 会标记 "不安全",HTTPS 显示安全锁;
  2. SEO 搜索引擎:百度、谷歌优先收录 HTTPS 站点,HTTP 会降权;
  3. 浏览器 API 限制 :很多前端能力(定位、摄像头、Service Worker)只允许 HTTPS 环境调用,HTTP 站点不能使用;
  4. 合规要求:涉及用户隐私、登录、支付的业务,等保、网信相关规范都要求 HTTPS 加密传输;
  5. 小程序 / APP 对接:微信小程序、很多 APP 接口,强制要求域名 HTTPS。

4. 简单流程总结

  1. 网站服务器部署 SSL 证书(含域名公钥)
  2. 用户浏览器访问域名 → 服务器下发证书
  3. 浏览器校验证书合法性
  4. 校验通过,双方通过非对称加密协商会话密钥
  5. 后续 HTTP 报文全部用会话密钥加密传输 → HTTPS

补充区分证书类型(你业务会用到)

  • DV 域名验证证书:只验证域名所有权,签发快,适合官网、普通站点(JoySSL 常用)
  • OV 组织验证证书:验证企业组织信息,证书里展示公司名称
  • EV 扩展验证证书:严格企业核验,早年地址栏展示企业名,现在浏览器基本弱化 EV 标识
  • 国密证书 SM2:国产密码算法,满足国内等保、国产化场景
相关推荐
Lsetea6 小时前
curl报58 unable to set private key file:客户端证书与私钥加载排查
运维·https·ssl证书·openssl·curl
Lsetea7 小时前
OpenSSL报certificate is not yet valid:error 9与notBefore时间排查
linux·运维·https·ssl证书·openssl
2501_915909067 小时前
iOS应用从开发到上架App Store的完整发布流程与步骤指南
android·ios·小程序·https·uni-app·webview
Smoothcloud润云9 小时前
GPU服务器租用实例DNS与HTTPS下载排障实战
大数据·运维·服务器·人工智能·https·gpu算力
神一样的老师12 小时前
WS63 访问 HTTPS 握手失败(-0x7780)根治
数据库·网络协议·https
Lsetea2 天前
curl用IP测试HTTPS报证书不匹配:--resolve与Host头别混用
linux·https·ssl证书·openssl·curl
掉进电商坑三年没爬出来的东叔2 天前
云服务器搭建个人网站实战:从零到公网访问,含域名HTTPS
运维·服务器·https
Lsetea3 天前
OpenSSL verify报unable to get issuer certificate:error 2与partial_chain排查
linux·https·ssl证书·openssl·证书链
天天进步20153 天前
Caddy 实战:5 分钟给域名开启 HTTPS,自动申请 SSL 证书并反向代理
网络协议·https·ssl