← 返回文章

Nginx SSL 证书更新流程

Nginx SSL 证书更新流程

·3 分钟阅读

Nginx SSL 证书更新流程(腾讯云免费证书)

适用场景:carreyda.com / www.carreyda.com,证书部署在服务器 Nginx 上,证书过期后手动更换。

基本信息

项目 内容
服务器 ubuntu@101.43.10.28(腾讯云轻量服务器)
本地证书目录 C:\Users\25776\Desktop\carreyda.com_nginx
服务器证书目录 /etc/nginx/ssl/carreyda.com/
Nginx 中引用的文件 carreyda.com_bundle.crt、carreyda.com.key
证书有效期 约 90 天(本次:2026-09-19 ~ 2026-12-18)

流程概览

flowchart TD
    A[证书过期] --> B[腾讯云控制台下载 Nginx 证书]
    B --> C[scp 上传到服务器 /tmp]
    C --> D[sudo cp 覆盖旧证书]
    D --> E{md5 是否一致?}
    E -- 否 --> B
    E -- 是 --> F[nginx -t 检查配置]
    F --> G[systemctl reload nginx]
    G --> H[验证新证书]

1. 下载证书

腾讯云控制台 → SSL 证书 → 我的证书 → 对应证书点"下载" → 选择 Nginx 类型。

image

解压后得到:

  • carreyda.com_bundle.crt(资源管理器里隐藏了扩展名,显示为"安全证书")
  • carreyda.com_bundle.pem(内容与 crt 相同,不用)
  • carreyda.com.key(私钥)
  • carreyda.com.csr(不用)

image

2. 上传到服务器(本地 PowerShell)

在证书所在文件夹的地址栏输入 powershell 回车,直接在当前目录打开。

scp "carreyda.com_bundle.crt" "carreyda.com.key" ubuntu@101.43.10.28:/tmp/

image

注意:

  • 命令里的 <服务器IP> 是占位符,替换时​连尖括号一起去掉​。
  • 首次连接提示 Are you sure you want to continue connecting 输入 yes。
  • 密码输入时不显示字符;输错会提示 Permission denied, please try again,重输即可。
  • 两个文件都显示 100% 即上传成功。

3. 服务器上替换证书

登录服务器(腾讯云控制台"登录",或 ssh ubuntu@101.43.10.28)。

image

/etc/nginx/ssl/ 只有 root 能进入,所以 cd 会报 Permission denied。​不要 cd,全部用 sudo + 绝对路径​。

# 确认文件已到位
ls -l /tmp/carreyda.com_bundle.crt /tmp/carreyda.com.key

# (可选)备份旧证书。旧证书已过期,备份意义不大,可跳过
sudo cp /etc/nginx/ssl/carreyda.com/carreyda.com_bundle.crt /etc/nginx/ssl/carreyda.com/carreyda.com_bundle.crt.bak
sudo cp /etc/nginx/ssl/carreyda.com/carreyda.com.key /etc/nginx/ssl/carreyda.com/carreyda.com.key.bak

# 覆盖
sudo cp /tmp/carreyda.com_bundle.crt /etc/nginx/ssl/carreyda.com/carreyda.com_bundle.crt
sudo cp /tmp/carreyda.com.key /etc/nginx/ssl/carreyda.com/carreyda.com.key
sudo chmod 600 /etc/nginx/ssl/carreyda.com/carreyda.com.key

4. 校验证书与私钥是否匹配

image

sudo openssl x509 -noout -modulus -in /etc/nginx/ssl/carreyda.com/carreyda.com_bundle.crt | openssl md5
sudo openssl rsa -noout -modulus -in /etc/nginx/ssl/carreyda.com/carreyda.com.key | openssl md5

两行 md5 ​必须一致​,否则说明 key 与证书不是一对,Nginx 会启动失败,需要重新下载。

查看新证书有效期:

sudo openssl x509 -noout -dates -in /etc/nginx/ssl/carreyda.com/carreyda.com_bundle.crt

5. 检查配置并重载 Nginx

sudo nginx -t && sudo systemctl reload nginx

出现 syntax is ok 和 test is successful 即可。

6. 验证线上生效

echo | openssl s_client -connect carreyda.com:443 -servername carreyda.com 2>/dev/null | openssl x509 -noout -dates

notAfter 为新的到期日期即成功。也可以在浏览器新开标签页访问 https://carreyda.com,点击地址栏左侧图标查看证书。

7. 清理

# 删除 /tmp 里的私钥副本
rm /tmp/carreyda.com.key /tmp/carreyda.com_bundle.crt

# (可选)删除备份
sudo rm /etc/nginx/ssl/carreyda.com/*.bak

常见问题

现象 原因 / 处理
cd /etc/nginx/ssl/...: Permission denied 目录仅 root 可进入,改用 sudo + 绝对路径
scp 提示 No such file 本地文件缺少 .crt 后缀,执行 Rename-Item "carreyda.com_bundle" "carreyda.com_bundle.crt"
两个 md5 不一致 key 与证书不匹配,重新下载同一张证书的文件
reload 后浏览器仍提示过期 浏览器缓存,或前面还有 CDN / 代理持有旧证书;新开标签页或 Ctrl+Shift+R
证书已更新但仍显示"不安全" 点"不安全"看具体原因:是否访问了 http://(需配 80 → 443 跳转)、页面是否有 Mixed Content(F12 Console 查看)

HTTP 跳转 HTTPS 的配置:

server {
    listen 80;
    server_name carreyda.com www.carreyda.com;
    return 301 https://$host$request_uri;
}

下次到期提醒

  • 本次证书到期:​2026-12-18​,建议 12 月 10 日左右开始续期。
  • 想免手动更新:改用 acme.sh 或 certbot 自动签发与续期。
© 2026 Carreyda