# SSL 证书续期操作指南

**日期：** 2026-05-24  
**操作结果：** ✅ 续期成功，新证书 2026-05-24 ~ 2026-08-22  
**域名：** ruilaizipj.com, www.ruilaizipj.com  
**上次过期：** 2026-04-28

---

## 方式一：恢复宝塔面板续期（推荐 — 支持自动续期）

### 1. 登录服务器

通过腾讯云控制台 VNC 或 Webshell 登录服务器。

### 2. 启动宝塔面板

```bash
# 检查面板状态
bt status

# 如果未运行，启动面板
bt start

# 确认面板端口
bt default
```

如果面板启动失败，尝试：

```bash
/etc/init.d/bt start
# 或
systemctl start bt-panel
```

### 3. 浏览器登录面板

```
https://101.43.95.130:38193/e626af3f
```

- 用户名：`0dbelvc8`
- 密码：`testpasswd`

如果忘记密码，在服务器上重置：

```bash
cd /www/server/panel && btpython tools.py panel testpasswd
```

### 4. 申请新证书

1. 进入：**网站** → 选择站点 `101.43.95.130`（或 `www.ruilaizipj.com`）
2. 点击 **SSL** → **Let's Encrypt**
3. 验证方式：**文件验证**
4. 勾选域名：`ruilaizipj.com` 和 `www.ruilaizipj.com`
5. 点击 **申请证书**
6. 申请成功后点击 **部署**

### ⚠️ 常见问题：续签提示 "部署失败，请关闭SSL后重新尝试部署"

如果证书已过期，直接点 **"续签证书"** 可能会报这个错。原因：过期证书仍占用 SSL 配置，导致新证书无法部署。

**解决方法：**
1. 在 SSL 页面先点击 **"关闭 SSL"**
2. 关闭后回到 Let's Encrypt 标签
3. 重新勾选域名，点击 **"申请证书"**
4. 申请成功后点击 **"部署"**

### 5. 验证证书

```bash
# 检查证书是否更新
openssl x509 -in /www/server/panel/vhost/cert/101.43.95.130/fullchain.pem -noout -dates

# 测试 HTTPS 访问
curl -I https://www.ruilaizipj.com
```

应返回 HTTP 200。

### 6. （建议）切换回宝塔 Nginx 实现自动续期

当前使用系统 Nginx，宝塔 Nginx 已停。宝塔 Nginx 支持 Let's Encrypt 自动续期，避免再次过期。

```bash
# 停止系统 nginx
systemctl stop nginx
systemctl disable nginx

# 启动宝塔 nginx
/etc/init.d/nginx start

# 确认 80/443 端口由宝塔 nginx 监听
netstat -tlnp | grep -E ':80|:443'
```

然后在宝塔面板 **网站** → **SSL** 中确认 **"自动续期"** 已开启。

---

## 方式二：命令行 certbot 续期（备用）

如果宝塔面板无法恢复，直接用 certbot：

```bash
# 1. 安装 certbot
yum install -y epel-release
yum install -y certbot

# 2. 停止 nginx（certbot 需要 80 端口做验证）
systemctl stop nginx

# 3. 申请证书（webroot 方式）
certbot certonly --webroot \
  -w /www/wwwroot/code/public \
  -d ruilaizipj.com \
  -d www.ruilaizipj.com \
  --email 你的邮箱

# 4. 更新 nginx 配置指向新证书
vi /etc/nginx/conf.d/default.conf
```

修改证书路径：

```nginx
ssl_certificate     /etc/letsencrypt/live/ruilaizipj.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/ruilaizipj.com/privkey.pem;
```

```bash
# 5. 启动 nginx
systemctl start nginx

# 6. 设置自动续期 cron
echo "0 3 * * * certbot renew --quiet --post-hook 'systemctl reload nginx'" | crontab -
```

---

## 验证清单

- [ ] `curl -I https://www.ruilaizipj.com` 返回 200
- [ ] `curl -I https://ruilaizipj.com` 返回 200
- [ ] 浏览器访问不提示证书错误
- [ ] 证书有效期确认在 90 天内
