免费SSL证书颁发
Hexo 博客升级 HTTPS(CentOS 7 + Nginx + Let’s Encrypt)
本文记录将 Hexo 静态博客从 HTTP 升级到 HTTPS 的完整过程,包括证书申请、Nginx 配置与自动续期。
一、环境信息
- 系统:CentOS 7
- Web 服务:Nginx
- 博客框架:Hexo(静态生成)
- 域名:
<YOUR_DOMAIN> - 部署目录:
/opt/blog/public - 服务器:阿里云 ECS
二、前置准备
1. 开放 HTTPS 端口
在云服务器安全组中放行:
| 协议 | 端口 | 来源 |
|---|---|---|
| TCP | 443 | 0.0.0.0/0 |
2. 确认 Nginx 正常运行
1 | |
测试 HTTP:
1 | |
3. 确认域名解析正常
1 | |
确保解析结果指向当前服务器公网 IP。
三、安装 Certbot(SSL 工具)
1. 安装 EPEL 源
1 | |
2. 安装 Certbot + Nginx 插件
1 | |
四、申请 HTTPS 证书(单域名)
执行:
1 | |
1. 输入邮箱
用于:
- 证书到期提醒
- 安全通知
2. 同意协议
输入:
1 | |
3. 是否订阅邮件
可选:
1 | |
五、Certbot 自动配置内容
成功后会自动完成:
1. 生成证书文件
路径:
1 | |
包含:
- fullchain.pem
- privkey.pem
2. 自动修改 Nginx 配置
自动添加:
1 | |
3. HTTP 自动跳转 HTTPS
1 | |
六、验证 HTTPS 是否成功
1. 浏览器访问
1 | |
出现 🔒 表示成功
2. 命令验证
1 | |
返回:
1 | |
七、自动续期配置(关键)
Let’s Encrypt 证书有效期 90 天,必须自动续期。
1. 测试续期
1 | |
2. 配置 crontab 定时任务
编辑:
1 | |
添加:
1 | |
3. 验证任务
1 | |
八、常见问题
1. HTTPS 无法访问
检查:
- 云服务器是否开放 443
- Nginx 是否监听 443
2. 证书未生效
1 | |
3. 域名解析异常
1 | |
4. crontab 报错(bad minute)
原因:
- cron 格式错误
- 空格或字符异常
正确格式:
1 | |
九、完整流程总结
域名解析 → 安全组放行 443 → 安装 certbot → 申请证书 →
Nginx 自动配置 → HTTPS 生效 → 配置自动续期
十、扩展优化(建议)
- CDN 加速(Cloudflare)
- Git 自动部署 Hexo
- HSTS 强制 HTTPS
- 自动备份 public 目录
备注
本文 <YOUR_DOMAIN> 已脱敏,请替换为实际域名使用。
免费SSL证书颁发
https://blog.sh462li.top/2026/05/22/免费SLL证书颁发/