个人网站配置 HTTPS 全过程记录
域名:chinahanwucun.cn
服务器:阿里云 ECS
架构:ECS + Docker Nginx + Tomcat
一、确定 HTTPS 装在哪一层?
核心原则:HTTPS 证书装在"用户真正连接到的那一层"(流量入口层)。
用户浏览器 │ │ 判断入口类型 ▼ ┌──────────────────────────────────────────────────────────┐ │ 有 SLB / CDN(阿里云负载均衡 / CDN) │ │ → HTTPS 证书配置在 SLB 或 CDN 控制台 │ │ → ECS 上的 Nginx 只需处理 HTTP 即可 │ ├──────────────────────────────────────────────────────────┤ │ 无 SLB,直接 ECS 对外(本项目情况) │ │ → HTTPS 证书配置在 ECS 的 Nginx 上 │ │ → Nginx 终止 SSL,内部用 HTTP 转发给 Tomcat │ └──────────────────────────────────────────────────────────┘本项目架构(在 Nginx 层终止 HTTPS):
用户浏览器 │ HTTPS 443 ▼ Docker Nginx(SSL 终止,处理证书) │ HTTP 内网 ▼ Tomcat 8080 │ ▼ Java Web 应用二、阿里云申请免费 SSL 证书并开放 443 端口
2.1 申请免费证书
- 登录阿里云控制台
- 搜索“SSL 证书”进入证书管理页面
- 点击“免费证书”→“立即购买”(0元,每年20个免费额度)
- 填写域名:
www.chinahanwucun.cn - 完成域名所有权验证(选 DNS 验证,阿里云自动添加解析记录)
- 等待签发(一般几分钟到1小时)
2.2 下载证书
- 证书签发后点击“下载”
- 服务器类型选择“Nginx”(必须选 Nginx 格式,不能选 Tomcat)
- 解压后得到两个文件:
www.chinahanwucun.cn_nginx.zip 解压后: ├── www.chinahanwucun.cn.pem ← 证书文件 └── www.chinahanwucun.cn.key ← 私钥文件2.3 安全组开放 443 端口
- 控制台 →ECS→ 选中实例 →安全组→管理规则
- 入方向→手动添加:
| 授权策略 | 协议类型 | 端口范围 | 授权对象 |
|---|---|---|---|
| 允许 | TCP | 443/443 | 0.0.0.0/0 |
- 点击保存
⚠️ 这一步容易忘记,不开放 443 端口 HTTPS 将完全无法访问。
三、服务器上配置 HTTPS
3.1 上传证书到服务器
在本地电脑执行:
# 在服务器创建 ssl 目录<