bg-tutorials

如何在 Ubuntu 服务器(Apache)上安装 SSL 证书

在本教程中,您将学习如何在 Ubuntu 上使用 Apache 安装 SSL 证书

我们还录制了一段视频,带您完整走一遍整个流程。如果您更喜欢文字版说明,请继续阅读下方内容。

生成 CSR 代码

我们先从生成 CSR(证书签名请求)开始。CSR 是发送给证书颁发机构以申请数字证书的请求。您有两种选择:

在下单过程中,将 CSR 提交给证书颁发机构。待 CA 验证通过并颁发您的 SSL 证书后,继续进行下面的安装步骤。

在 Ubuntu 服务器上安装 SSL 证书

第一步:上传证书文件

验证通过后,证书颁发机构会通过电子邮件将证书文件发给您。解压压缩包后,您应该会得到以下文件:

  • yourdomain.crt,您的主 SSL 证书。
  • yourdomain.ca-bundle,中间证书(CA 捆绑包)。
  • yourdomain.key,您在生成 CSR 时创建的私钥。

将证书和 CA 捆绑包上传到 /etc/ssl/,将私钥上传到 /etc/ssl/private/(确保该密钥仅限 root 可读)。在 Apache 2.4.8 及更新版本(所有受支持的 Ubuntu 版本均包含此版本)中,需要将证书和 CA 捆绑包合并为一个完整证书链文件:

cat yourdomain.crt yourdomain.ca-bundle > yourdomain_fullchain.crt

第二步:启用 SSL 模块并找到站点配置文件

启用 Apache 的 SSL 模块(以及第三步中用于 HSTS 的 headers 模块):

sudo a2enmod ssl
sudo a2enmod headers

您站点的配置文件位于 /etc/apache2/sites-available/(通常命名为 yourdomain.conf)。请在该位置编辑文件。sites-enabled/ 目录中的文件只是符号链接。如果站点尚未启用,请使用以下命令启用:

sudo a2ensite yourdomain.conf

注意:请使用独立的 VirtualHost 区块分别处理 HTTP(端口 80)和 HTTPS(端口 443)。SSL 相关指令应写在 HTTPS 那个区块中。

第三步:配置 HTTPS VirtualHost

设置端口 443 的 VirtualHost。一个完整、现代的配置区块如下所示;请根据您的实际文件调整路径:

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

    SSLEngine on

    # Apache 2.4.8+ : certificate + CA bundle in one full-chain file
    SSLCertificateFile    /etc/ssl/yourdomain_fullchain.crt
    SSLCertificateKeyFile /etc/ssl/private/yourdomain.key

    # Recommended TLS hardening (2026)
    SSLProtocol         -all +TLSv1.2 +TLSv1.3
    SSLHonorCipherOrder off

    # Enable HSTS only after you confirm HTTPS works
    Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
</VirtualHost>
  • SSLCertificateFile:您的完整证书链文件(证书 + 中间证书)。在 Apache 2.4.8 及更高版本中,此指令替代了已弃用的 SSLCertificateChainFile
  • SSLCertificateKeyFile:您在生成 CSR 时创建的私钥。

旧版 Apache(低于 2.4.8):请将证书与证书链分开存放,并添加 SSLCertificateChainFile /etc/ssl/yourdomain.ca-bundle,指向 CA 捆绑包文件,而不是您的证书文件。

第四步:将 HTTP 重定向到 HTTPS

为确保访客始终访问安全版本,请添加一个端口 80 的 VirtualHost,将请求重定向至 HTTPS:

<VirtualHost *:80>
    ServerName www.yourdomain.com
    Redirect permanent / https://www.yourdomain.com/
</VirtualHost>

第五步:测试配置

重新加载之前请务必先进行测试;语法错误可能导致站点离线:

sudo apache2ctl configtest

您应该会看到 Syntax OK。如果出现错误,请在继续之前重新检查前面的步骤。

第六步:重新加载 Apache

重新加载 Apache 以使更改生效(重新加载会在不中断现有连接的情况下应用新配置):

sudo systemctl reload apache2

恭喜,您现已在 Ubuntu 服务器上成功安装了 SSL 证书。若要验证安装结果并获取即时状态报告,请使用我们的 SSL Checker

在哪里购买适用于 Ubuntu 服务器的 SSL 证书?

SSL Dragon 是满足您所有 SSL 需求的可靠来源。我们提供市场上最具竞争力的价格,覆盖全系列 SSL 产品,并与业内顶尖 SSL 品牌合作,为您提供强大的安全保障与专业支持。我们所有的 SSL 证书均兼容 Ubuntu 服务器。

常见问题

如何确认 SSL 证书是否已在 Ubuntu 上安装?

使用 OpenSSL 连接到您的站点并读取其提供的证书:
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -issuer -dates
如果证书已安装,该命令会打印出证书的颁发者和有效期。您也可以使用 sudo apache2ctl -S 列出 Apache 当前激活的虚拟主机,或者直接在浏览器中打开您的站点,查看地址栏中的锁形图标。

在 Ubuntu 中应将 SSL 证书放在哪里?

按照惯例,证书应放在 /etc/ssl/certs/(或 /etc/ssl/),私钥应放在 /etc/ssl/private/。这些只是默认位置;只要您的 VirtualHost 正确指向对应路径,也可以使用其他位置。

Ubuntu 上的 Apache 站点配置文件位于何处?

站点配置文件位于 /etc/apache2/sites-available/(例如 yourdomain.conf),已启用的站点会被符号链接到 /etc/apache2/sites-enabled/。使用 sudo a2ensite yourdomain.conf 命令即可启用某个站点。

在 Ubuntu 上是否需要合并证书和 CA 捆绑包?

在 Apache 2.4.8 及更高版本(所有受支持的 Ubuntu 版本)中,是的:您需要将证书和 CA 捆绑包合并为一个文件,并将 SSLCertificateFile 指向该文件。单独的 SSLCertificateChainFile 指令已被弃用,仅在较旧版本的 Apache 中才需要使用。

总结

在 Ubuntu 上使用 Apache 安装 SSL 证书,核心步骤包括:上传证书文件、启用 mod_ssl、使用完整证书链配置 HTTPS VirtualHost、使用 sudo apache2ctl configtest 进行测试,最后重新加载 Apache。还没有证书?欢迎浏览我们的SSL 证书产品。

立即订购 SSL 证书, 可节省 10% 的费用!

快速发行, 强大加密, 99.99% 的浏览器信任度, 专业支持和 25 天退款保证. 优惠券代码 SAVE10

龙飞行的详细图像
撰写人

经验丰富的内容撰稿人, 擅长 SSL 证书. 将复杂的网络安全主题转化为清晰, 引人入胜的内容. 通过有影响力的叙述, 为提高数字安全作出贡献.