Appearance
在 Nginx 中首次部署 SSL 证书并启用 HTTPS
本文适用于已有正常 HTTP 网站、证书已签发,需要首次启用 HTTPS 的 Linux / Nginx 客户。以 trustasia.com 为例,请将域名和路径替换为实际信息。已有正常 HTTPS 的网站无需重新执行;需要自动换证时,核对本文完成条件后阅读自动更新教程。
操作流程: 准备环境 → KeyManager 导出 → 安装证书 → 配置 HTTPS → 验证访问。
第一步:确认目标与环境
- 在服务器终端操作,使用有 sudo 权限的账号;网站当前能通过 HTTP 访问,
nginx -t检查通过。 - 找到该网站的配置文件,先保存一份副本,后面只修改这个网站。
- 已签发该域名的证书,能通过 KeyManager 导出证书和私钥。
- 域名指向实际网站入口,客户端能访问 HTTPS 的 443 端口。使用WAF、CDN 等代理时,还要在代理入口配置证书。
先完成 HTTPS 访问,自动更新和 HTTP 跳转留到成功后再配置。
第二步:导出并安装证书
在 CertCloud 的已签发订单中点击“下载证书 → 打开 KeyManager”,同步到保存了匹配私钥的 KeyManager 环境。在“证书管理 → 更多 → 导出证书”选择 Nginx(PEM) 格式,再将导出的证书链和私钥上传到服务器。操作图示见KeyManager 下载与导出指南,本篇不需要安装自动化工具。
在 Nginx 服务器终端中,修改下面三个变量,将导出的证书和私钥复制到网站的证书目录。目标已有同名文件时先保存副本,命令会覆盖它们。
bash
sudo bash -c 'set -eu
SOURCE_CERT="/root/cert-files/fullchain.pem"
SOURCE_KEY="/root/cert-files/privkey.pem"
TARGET_DIR="/etc/nginx/tls/trustasia.com"
install -d -m 700 -o root -g root "$TARGET_DIR"
install -m 644 -o root -g root "$SOURCE_CERT" "$TARGET_DIR/fullchain.pem"
install -m 600 -o root -g root "$SOURCE_KEY" "$TARGET_DIR/privkey.pem"
echo "证书和私钥已安装到:$TARGET_DIR"'SOURCE_CERT:上传到服务器的完整证书链文件路径,文件名按实际导出结果填写。SOURCE_KEY:同一次导出的私钥文件路径。TARGET_DIR:Nginx 使用的证书目录。安装后的文件名为fullchain.pem和privkey.pem,第三步填写相同路径。
看到“证书和私钥已安装到……”后,继续配置 HTTPS。本文使用由 root 启动的 Nginx,私钥只允许 root 读取。
第三步:为原网站添加 HTTPS
备份原站点配置,按业务需要在原网站中增加 HTTPS 监听或独立 HTTPS server。以下只是需要确认的指令,不是可以覆盖原配置的完整站点:
nginx
server {
listen 443 ssl;
server_name trustasia.com;
ssl_certificate /etc/nginx/tls/trustasia.com/fullchain.pem;
ssl_certificate_key /etc/nginx/tls/trustasia.com/privkey.pem;
location / {
#业务逻辑
}
}保留原 HTTP 监听、反向代理、root、location、访问控制及其他业务设置。检查同 IP、端口和域名没有冲突。
bash
sudo nginx -t && sudo systemctl reload nginx配置检查失败时不要重启服务,恢复或修正本次变更后重新检查。
第四步:检查网站访问
在自己的电脑上打开浏览器,访问 https://trustasia.com/。把 trustasia.com 换成你的网站域名,与第三步的 server_name 一致。
确认以下结果:
- 打开的是自己的网站,浏览器没有“连接不安全”或证书错误提示。
- 点击地址栏左侧的网站信息按钮,进入连接信息并查看证书,确认域名是自己的网站、证书没有过期。
- 浏览常用页面,确认图片、样式和登录等功能正常。
以上均正常,就完成了 HTTPS 部署。
如果本次修改后网站无法正常访问: 用第一步保存的副本恢复原网站配置,再在服务器终端执行第三步的检查和重载命令,确认原来的 HTTP 网站恢复。
如果网站能打开,但浏览器仍显示旧证书,再查看旧证书排查指南。
后续自动更新
记录 HTTPS 入口、域名、在线全链与私钥绝对路径以及配置备份。自动更新应保留这些路径和业务配置,不必迁移到新的版本目录。
- 单节点:Nginx 证书部署与自动续期。
- 多节点:通过 Ansible 集中管理证书;每个目标节点先完成首次部署,并确认部署账号和提权权限。
