Nginx服务器怎么安装SSL证书?Nginx配置HTTPS全流程与常见报错排查

更新时间:2026-01-16 来源:TopSSL技术团队

Nginx服务器怎么安装SSL证书?

Nginx服务器安装SSL证书主要分为四步:准备证书文件、配置443端口、检查Nginx配置并重载服务,最后配置80端口301跳转HTTPS。

Nginx配置HTTPS的核心在于使用匹配的私钥文件,以及包含服务器证书和必要中间CA证书的证书链文件。通过配置 ssl_certificatessl_certificate_key 指令监听 443 端口,可以确保客户端建立安全的 TLS 连接。


Nginx安装SSL证书的完整流程

在 Linux 服务器中,为 Nginx 部署 HTTPS 服务的标准执行顺序如下:

准备证书文件(合并服务器证书与中间CA证书)
         ↓
上传证书与私钥至服务器指定目录并配置文件权限
         ↓
配置 nginx.conf 中的 443 端口与证书路径
         ↓
配置 80 端口 HTTP 301 重定向至 HTTPS
         ↓
运行 nginx -t 检查配置文件语法
         ↓
重载 Nginx 服务(nginx -s reload)并排查端口与防火墙

第一步:证书文件的合并与准备

在使用 ssl_certificate 指令配置 HTTPS 时,证书文件应包含服务器证书以及必要的中间 CA 证书,并按照证书链顺序排列。如果 CA 机构签发时提供了多个独立的证书文件(如 domain.crtca.crt),需要在服务器端合并为一个 PEM 文件。

1. 常见证书文件对应关系

文件名称(示例)文件作用包含内容配置指令
domain.crt服务器 SSL 证书仅包含当前域名的公钥证书不直接用于 Nginx(需合并)
ca.crt中间 CA 证书颁发机构的证书链不直接用于 Nginx(需合并)
fullchain.pem证书链文件服务器证书 + 中间 CA 证书ssl_certificate
private.key证书私钥与服务器证书匹配的私钥ssl_certificate_key

注意​:fullchain.pem 仅包含公钥与证书链,切勿将 private.key 私钥内容拼接进证书链文件中。

2. 文件拼接顺序与命令

对于包含证书链的 PEM 文件,服务器证书应放在最前面,中间 CA 证书依次放在后面。顺序错误可能导致部分客户端无法正确构建证书链。

在 Linux 终端中使用 cat 命令顺序合成:

cat domain.crt ca.crt > fullchain.pem

合成后的 fullchain.pem 与私钥文件 private.key 一起作为配置项使用。如果缺少工具或难以判断密钥格式,可以通过 SSL证书工具 完成证书与私钥的匹配检查。

3. 存放位置与文件权限

建议将证书相关文件存放在 /etc/nginx/cert/ 目录下,并对私钥设置严格的访问权限:

chmod 600 /etc/nginx/cert/private.key

私钥不应设置为所有用户可读。采用 600 权限时,应确保启动 Nginx 的账户能够读取该文件;常见的 systemd 或 root 启动方式可以直接使用 root:root 所有权。如果修改了 Nginx 的运行账户,需要根据实际情况调整文件的所有者或 ACL 权限。

第二步:修改 Nginx 配置文件

找到站点对应的配置文件(一般位于 /etc/nginx/nginx.conf/etc/nginx/conf.d/site.conf),在 Server 块中增加 443 端口配置。怎么安装SSL证书 的核心在于写对路径与协议规范。

1. 基础 HTTPS 配置示例

Nginx

server {
    listen 443 ssl;
    server_name example.com www.example.com;

    # 证书公钥文件路径(包含完整证书链)
    ssl_certificate /etc/nginx/cert/fullchain.pem;

    # 证书私钥文件路径
    ssl_certificate_key /etc/nginx/cert/private.key;

    # TLS 协议版本(密码套件优先使用 Nginx/OpenSSL 安全默认配置)
    ssl_protocols TLSv1.2 TLSv1.3;

    # 会话缓存设置(可选,优化握手性能)
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;

    location / {
        root /usr/share/nginx/html;
        index index.html index.htm;
    }
}

说明​:密码套件建议优先采用 Nginx 与 OpenSSL 当前版本的默认安全配置。如果业务有明确的合规要求,再根据实际 OpenSSL 版本针对性设置 ssl_ciphers,不建议直接复制网上的固定套件配置。

2. 配置 HTTP 自动跳转 HTTPS

为了引导所有访问转化为加密连接,需要在独立的 80 端口 server 块中配置 301 重定向,实现 网站从HTTP更改为HTTPS

Nginx

# 80 端口 HTTP 转向 HTTPS
server {
    listen 80;
    server_name example.com www.example.com;

    return 301 https://$host$request_uri;
}

将 HTTP 80 端口与 HTTPS 443 端口分别配置在独立的 server 块中,可以让 HTTP 到 HTTPS 的跳转逻辑更加清晰,也便于排查重定向循环问题。

第三步:语法检查与服务重载

完成配置文件修改后,应先执行语法检查,再重载 Nginx。这样可以在正式加载新配置前发现语法或配置错误,避免错误配置导致服务重载失败。

1. 检查配置语法

在终端运行:

nginx -t

如果输出显示以下结果,代表配置文件语法正常:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok

nginx: configuration file /etc/nginx/nginx.conf test is successful

2. 重载 Nginx 服务

在不中断在线连接的前提下平滑加载新配置:

nginx -s reload

或者在 Systemd 系统中使用:

systemctl reload nginx

如需深入了解底层加密机制,可参考 什么是SSL证书 相关的说明。


常见问题 FAQ

Q:修改配置后运行 nginx -t 报错“cannot load certificate: PEM_read_bio_X509_AUX failed”?

A:一般与证书文件内容无法被 OpenSSL 正确解析有关,常见原因包括证书路径错误、PEM 文件损坏、证书内容不完整或文件中混入了非 PEM 内容。手动合并时,要确保域名证书结尾的 -----END CERTIFICATE----- 与中间证书开头的 -----BEGIN CERTIFICATE----- 之间存在正常的换行符,不能粘连在同一行。

Q:客户端访问时提示“证书不受信任”或“NET::ERR_CERT_AUTHORITY_INVALID”?

A:客户端是否能够通过 AIA 等机制补充获取缺失的中间证书,受操作系统、浏览器及网络环境限制,不能依赖客户端自动补全。因此一般应在 ssl_certificate 指定的 PEM 文件中同时包含服务器证书和必要的中间 CA 证书,以便客户端正确构建证书链。

Q:重载 Nginx 后,访问 443 端口提示“拒绝连接”或超时?

A:如果访问 443 端口时出现“拒绝连接”或超时,应先确认 Nginx 是否成功监听 443 端口,再检查系统防火墙和云服务器安全组是否放行 443。可以使用 ss -lntp | grep :443netstat -tlpn | grep 443 检查监听状态。遇到访问异常也可查看 修复SSL证书错误 进行排查。

Q:在同一台 Nginx 服务器部署多个 HTTPS 站点,证书会混淆吗?

A:不会。对支持 SNI 的客户端,Nginx 会根据 TLS 握手阶段发送的 SNI(Server Name Indication)匹配对应的 server 块并选择对应的 SSL 证书。只要在不同的 server 块中配置对应的 server_name 以及匹配的 ssl_certificate 路径,即可在同一 IP 和 443 端口上运行多个独立的 HTTPS 站点。

Nginx 配置 HTTPS 时,重点检查三个地方:ssl_certificate 是否指向包含服务器证书和中间 CA 证书的 PEM 文件,ssl_certificate_key 是否与证书匹配,以及 443 端口是否正常监听。修改配置后先执行 nginx -t,确认无误后再 reload。HTTPS 确认正常后,再配置 80 端口 301 跳转。

立即探索,帮您快速寻找适合您的SSL数字证书 申请SSL证书
免费SSL证书 - SSL证书申请与HTTPS安全服务平台 | TopSSL
提供免费与付费SSL证书申请
关注 TopSSL 公众号, RSS订阅SSL资讯与技术支持

TopSSL是一站式SSL证书服务平台,提供免费SSL证书申请、商业SSL证书服务及HTTPS安全解决方案,支持DV、OV、EV、通配符和国密SSL证书服务。2004-2026 © 北京传诚信  版权所有 |  北京市朝阳区鹏景阁大厦16层

技术协助:wo@topssl.cn 企业咨询:vip@topssl.cn