网站 HTTPS 实现全攻略(从零到部署,原理 + 步骤 + 配置 + 常见坑)
一、先搞懂:HTTP 和 HTTPS 本质区别
- HTTP:明文传输,端口80,数据裸奔,中间人可以窃听、篡改、劫持。
- HTTPS = HTTP + SSL/TLS 加密,端口443,传输加密 + 身份认证 + 数据完整性校验。
核心三大作用:
- 加密传输:别人截获报文也看不懂;
- 身份认证:确认你访问的是真实官网,不是钓鱼站;
- 完整性:数据中途被篡改能立刻发现。
二、HTTPS 底层原理(极简大白话)
1. 用到两套加密
- 非对称加密(RSA/ECC) :用来协商会话密钥、验证证书身份
- 对称加密(AES) :协商好密钥后,实际网页数据高速加密传输
2. 完整握手流程
- 浏览器访问网站 443 端口;
- 服务器把SSL 证书发给浏览器;
- 浏览器用CA 根证书校验网站证书是否合法、没过期、域名匹配;
- 校验通过后,双方用非对称加密协商出一个临时会话密钥;
- 后续所有网页流量,都用对称密钥 AES 加密通信;
- 建立加密通道,开始传输网页内容。
关键点:SSL 证书是 HTTPS 的门票,没有证书就开不了 HTTPS。
三、必备核心:SSL/TLS 证书是什么
1. 证书包含内容
- 网站域名(主域名 + 泛域名)
- 企业 / 个人信息
- 加密算法、有效期
- CA 机构数字签名
2. 证书类型(按域名覆盖)
- 单域名证书:只保护 www.xxx.com
- 多域名证书:保护多个不同域名
- 泛域名证书:
*.xxx.com适配所有子域名 - EV 企业级证书:地址栏显示企业名,信任度最高
3. 证书收费类型
- 免费证书:Let's Encrypt、ZeroSSL、阿里云免费证书(适合个人 / 中小企业)
- 付费证书:Symantec、GeoTrust、国产 CA(稳定性高、售后好、浏览器兼容性更强)
四、网站开启 HTTPS 完整 5 大步骤
步骤 1:准备域名 + 服务器
- 已有域名、云服务器 / 虚拟主机 / 宝塔面板
- 域名已备案(国内服务器必须备案才能用 443)
步骤 2:申请 SSL 证书
两种方式:
- 服务商一键申请阿里云 / 腾讯云 / 华为云 → SSL 证书 → 申请免费 DV 证书 → 填写域名 → 自动 DNS 验证下发证书。
- 自行申请 Let's Encrypt用
Certbot工具自动申请、自动续期。
证书下载格式一般有:
- Nginx:
pem+key - Apache:
crt+key - IIS:PFX 格式
步骤 3:服务器配置证书(最常用 Nginx / 宝塔)
方式 A:宝塔面板(小白首选)
- 宝塔网站列表 → 对应站点 → SSL
- 上传证书文件 或 一键申请免费证书
- 开启强制 HTTPS(80 跳转 443)
- 保存生效,直接搞定
方式 B:原生 Nginx 手动配置
修改 nginx.conf 站点配置:
nginx
# 监听443端口
listen 443 ssl;
server_name www.gentaipower.com;
# 配置证书路径
ssl_certificate /usr/local/nginx/ssl/xxx.pem;
ssl_certificate_key /usr/local/nginx/ssl/xxx.key;
# 加密协议与套件
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!SHA1:!SSLv3;
ssl_prefer_server_ciphers on;
# 网页根目录
root /www/xxx;
index index.html index.php;
配置完重启 Nginx:
bash
运行
systemctl restart nginx
步骤 4:设置 HTTP 自动跳转 HTTPS
访问 http 自动跳到 https,Nginx 加一段:
nginx
server {
listen 80;
server_name www.gentaipower.com;
return 301 https://$host$request_uri;
}
步骤 5:浏览器校验 + 全站适配
- 浏览器打开域名,地址栏出现小锁 = 成功
- 检查:网页内所有图片、JS、CSS不能是
http外链,否则出现混合内容,小锁变感叹号 - 站内全部改成相对路径或
https资源
五、关键知识点:TLS 版本、算法选择
- 废弃:TLSv1.0、TLSv1.1(不安全,浏览器已拦截)
- 推荐:TLSv1.2 + TLSv1.3
- 加密算法优先:ECC 优于 RSA,速度快、安全性高、证书体积小
六、证书续期问题(重点)
-
免费证书大多有效期 90 天,必须定期续期
-
解决方案:
- 宝塔 / 云控制台自动续期
- Certbot 设置定时任务,自动续期 + 重启服务
七、常见报错与坑
- 小锁不安全、感叹号原因:页面有 http 图片 / 脚本(混合内容)
- 证书域名不匹配证书绑定域名和访问域名不一致
- 证书已过期没及时续期,浏览器直接拦截
- 443 端口没放行服务器防火墙 / 安全组没开 443,HTTPS 打不开
- 备案问题国内服务器未备案,443 端口无法使用