SSL证书安装教程:Nginx与Apache服务器配置步骤与常见错误排查

更新时间:2026-03-22 来源:TopSSL技术团队

购买并申请 SSL 证书后,还需要将证书正确部署到 Web 服务器,HTTPS 才能正式生效。很多用户在安装 SSL 证书时,常遇到上传证书后依然提示“不安全”、移动端访问报错或 Web 服务重启失败等问题。这些故障大部分源于证书链拼接错误、私钥不匹配或服务器配置不当。本文提供 Nginx 和 Apache 服务器的 SSL 证书安装实操步骤与故障排查指引。

SSL证书安装前需要准备哪些文件?

CA 机构签发 SSL 证书后,一般会提供以下文件:

文件类型常用扩展名作用说明
网站证书.crt/.cer/.pem包含域名信息、公钥及 CA 数字签名
私钥文件.key申请证书(CSR)时生成的私钥,用于 TLS 加密通信,极其重要
中间证书链ca-bundle.crt/chain.pem中间 CA 证书,用于在客户端与根证书之间建立完整的信任链

其中最容易出错的是​中间证书链​。服务器不能只部署域名证书,还需要同时返回中间 CA 证书,否则部分客户端(尤其是移动端)会因为无法构建完整信任链而报错。

一个标准的信任链递进关系如下:

网站证书 (Server Cert)
    ↓
中间 CA 证书 (Intermediate CA)
    ↓
根 CA 证书 (Root CA,内置于操作系统/浏览器)

如果缺少中间证书,浏览器通常会提示 NET::ERR_CERT_AUTHORITY_INVALID。关于 SSL 证书的基本作用和工作原理,可以先阅读什么是SSL证书?

Nginx安装SSL证书步骤

Nginx 是目前使用非常广泛的 Web 服务器。配置 Nginx 的核心在于生成并加载包含完整证书链的文件(Full Chain)以及匹配的私钥文件。

第一步:上传证书与私钥文件

建议在服务器上创建独立的安全目录保存证书,例如:

mkdir -p /etc/nginx/ssl/

将从 CA 下载到的域名证书、私钥以及中间证书上传至该目录:

  • example.com.crt(域名证书)
  • example.com.key(私钥文件)
  • ca-bundle.crt(中间证书)

第二步:合并服务器证书和中间证书

Nginx 需要使用包含完整证书链的合并文件。在 Linux 终端下执行以下命令:

Bash

cat example.com.crt ca-bundle.crt > fullchain.crt

注意文件合并顺序:

  • 正确顺序: 站点证书内容在前,中间证书内容在后。
  • 错误顺序: 中间证书在前,站点证书在后(这会导致客户端解析失败)。

第三步:修改 Nginx 配置文件

打开对应网站的 Nginx 配置文件(如 /etc/nginx/conf.d/example.conf),添加或修改 server 块:

Nginx

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

    ssl_certificate /etc/nginx/ssl/fullchain.crt;
    ssl_certificate_key /etc/nginx/ssl/example.com.key;

    # 推荐的 TLS 协议配置
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;
}

关于具体的安装细节与语法解析,亦可参阅怎么安装SSL证书?

第四步:检查配置并平滑重载

修改完成后,切勿直接重启服务。先执行语法检查:

Bash

nginx -t

如果控制台显示 syntax is oktest is successful,说明配置无误。随后执行平滑重载命令:

Bash

nginx -s reload

在生产环境中,使用 reload 可以让 Nginx 在不中断现有长连接的前提下加载新证书,比直接 restart 更安全。

Apache安装SSL证书步骤

Apache(httpd)服务器的配置逻辑与 Nginx 略有不同,需要根据 Apache 版本选择合适的证书链加载方式。

第一步:上传证书文件

将证书文件上传至 Apache 的 SSL 配置目录,例如 /etc/httpd/ssl//etc/apache2/ssl/

第二步:修改 Apache VirtualHost 配置

打开对应的 SSL 站点配置文件(如 httpd-ssl.conf000-default-ssl.conf),进行配置:

Apache

<VirtualHost *:443>
    ServerName example.com
    DocumentRoot /var/www/html

    SSLEngine on

    # 站点证书路径
    SSLCertificateFile /etc/httpd/ssl/example.com.crt

    # 私钥文件路径
    SSLCertificateKeyFile /etc/httpd/ssl/example.com.key

    # 中间证书链路径(适用于 Apache 2.4.7 及更早版本)
    SSLCertificateChainFile /etc/httpd/ssl/ca-bundle.crt
</VirtualHost>

说明: Apache 2.4.8 及更高版本中,SSLCertificateChainFile 指令已被废弃。新版本推荐直接将合并后的 fullchain.crt 配置给 SSLCertificateFile,逻辑与 Nginx 保持一致。

第三步:检查配置并重载 Apache

配置完成后,使用以下命令检查语法:

# CentOS / RHEL 环境
apachectl configtest

# Ubuntu / Debian 环境
apachectl -t

输出 Syntax OK 后,执行平滑重载:

systemctl reload httpd   # CentOS / RHEL
systemctl reload apache2 # Ubuntu / Debian

SSL证书安装后如何检查是否成功?

证书部署完成后,不建议仅凭本地浏览器访问来判断是否完全成功。建议通过以下方式做全面复验:

1. 浏览器基础排查

使用无痕模式打开 [https://example.com](https://example.com),点击地址栏前面的“锁型”图标,检查:

  • 证书颁发的域名与当前访问域名是否一致;
  • 证书有效期时间是否正确;
  • 证书链层级是否完整(无黄色感叹号或红叉)。

2. OpenSSL 命令行深度检测

在 Linux 终端通过以下命令测试 443 端口的 TLS 握手及证书链返回情况:

openssl s_client -connect example.com:443 -servername example.com

重点观察输出结果中的最后一行为:

Verify return code: 0 (ok)

如果返回非 0 值(如 code 21: unable to verify the first certificate),说明服务器未正确返回中间证书链。关于如何将域名从不安全状态彻底解决,可以参考网站如何从HTTP更改为HTTPS?


SSL证书安装常见错误

1. 安装后仍提示“不安全”

常见原因:

证书链缺失

服务器只返回:

example.com.crt

没有返回:

ca-bundle.crt

解决:

重新生成 fullchain 文件。


2. Private Key不匹配

错误:

SSL_CTX_use_PrivateKey failed

原因:

证书和私钥不是同一次申请生成。

检查:

openssl rsa -noout -modulus -in server.key

openssl x509 -noout -modulus -in server.crt

两者结果必须一致。


3. 域名不匹配

例如:

证书申请:

www.example.com

访问:

example.com

可能出现:

NET::ERR_CERT_COMMON_NAME_INVALID

解决:

重新申请包含正确域名的证书。


4. HTTPS正常但HTTP没有跳转

SSL证书只负责HTTPS加密。

HTTP跳HTTPS需要额外配置:

Nginx:

return 301 https://$host$request_uri;

Apache:

Redirect permanent / https://example.com/

SSL证书安装需要重启服务器吗?

一般不需要。

修改证书配置后:

Nginx:

nginx -s reload

Apache:

systemctl reload httpd

即可。

只有修改底层软件配置或升级模块时,才需要完整重启服务。

常见问题 FAQ

SSL 证书安装需要重启整个服务器操作系统吗?***

A:完全不需要。修改 Web 服务器配置后,仅需对 Web 服务进程进行平滑重载(如 nginx -s reloadsystemctl reload httpd)即可使新证书生效,无需重启服务器主机。

免费 SSL 证书可以安装到生产服务器吗?***

A:可以。通过合规 CA 签发的免费 DV SSL 证书(例如 Let's Encrypt 等)在加密强度和浏览器信任度上与付费 DV 证书一致,完全可以用于生产环境。但免费证书有效期较短(通常为 90 天),需配合脚本建立自动续期机制。想了解如何获取与使用免费证书,可参阅免费SSL证书是什么?怎么申请?

在服务器上更换证书需要关闭原来的站点服务吗?***

A:不需要。直接用新签发的证书与私钥覆盖原目录文件(或修改配置指向新路径),随后执行 reload 重载命令,整个切换过程对在线用户完全无感。

部署 SSL 证书不仅是把证书文件上传到服务器,核心在于保证私钥与证书配对无误、正确合并中间信任链,并在 Web 服务中完成 TLS 协议参数的平滑重载。

无论是 Nginx 还是 Apache,完成 SSL 证书部署后,建议使用命令行工具或专业的在线 SSL 检测工具对 443 端口进行复验。理清证书链的结构与配置文件路径,可以避免绝大多数因安装配置不当导致的 HTTPS 访问故障,为网站建立起稳定可信的加密传输通道。

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

2004-2026 © 北京传诚信  版权所有 | TopSSL 提供免费SSL证书申请、HTTPS加密部署及企业级SSL证书服务,支持网站安全连接、数字证书安装与浏览器信任验证。  北京市朝阳区鹏景阁大厦16层

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