Skip to content

在 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 一致。

确认以下结果:

  1. 打开的是自己的网站,浏览器没有“连接不安全”或证书错误提示。
  2. 点击地址栏左侧的网站信息按钮,进入连接信息并查看证书,确认域名是自己的网站、证书没有过期。
  3. 浏览常用页面,确认图片、样式和登录等功能正常。

以上均正常,就完成了 HTTPS 部署。

如果本次修改后网站无法正常访问: 用第一步保存的副本恢复原网站配置,再在服务器终端执行第三步的检查和重载命令,确认原来的 HTTP 网站恢复。

如果网站能打开,但浏览器仍显示旧证书,再查看旧证书排查指南。

后续自动更新 ​

记录 HTTPS 入口、域名、在线全链与私钥绝对路径以及配置备份。自动更新应保留这些路径和业务配置,不必迁移到新的版本目录。

参考文档 ​