知识库

在 Apache 安装 SSL 证书

在您开始SSL安装过程之前,请确保已生成CSR代码,所有验证要求已满足,以及从ZTABOX电子邮件中签发并下载了SSL证书

接下来的前提条件旨在简化SSL安装并帮助您避免常见的错误:

  • 通过SSH访问主机服务器的配置。
  • 网站应该通过HTTP连接运行(默认端口80)
  • 私钥应与SSL证书匹配并存放在同处。查看这篇文章以查找私钥并使用这个工具进行匹配。

如您所知,有许多Linux发行版可安装Apache HTTP服务器。本文将回顾两个主要操作系统系列的SSL安装步骤:基于Debian和基于RHEL的系统。

Debian, Ubuntu

为了让Apache网页服务器运行加密的HTTPS连接,请确保使用以下命令启用SSL模式:

sudo a2enmod ssl

将SSL证书文件(.crt和.ca-bundle)上传到服务器的/etc/ssl/活页夹,并将您的私钥文件(.key)移动到/etc/ssl/private/活页夹以便于管理。

要开始SSL安装,请找到包含< VirtualHost *:80 >...< /VirtualHost >设置的Apache配置文件,以便于您网站的HTTP连接。
此文件的默认位置可能有所不同,并且取决于服务器配置和操作系统版本。

在大多数情况下,适当的配置文件(符号链接)可以在Debian和Ubuntu操作系统的/etc/apache2/sites-enabled/目录中找到。

以下命令可能有助于找到正确的配置文件:

apachectl -S

输出可能会显示端口(80)、域名(example.com)、配置文件路径(/etc/apache2/sites-enabled/000-default.conf)和开始HTTP连接的虚拟主机的行号(1)。

apach1

以下输出表示Apache已经有一个安全HTTPS连接的配置文件,因此您需要根据SSL续期部分进行更新。

apach12

如果您没有看到安全连接的配置文件(*:443行带有您的域名),则需要进行新的SSL安装,请按照以下指示进行:

根据虚拟主机的HTTP连接设置,复制配置文件。此命令可能会有帮助:

cp /etc/apache2/sites-available/your_website.conf
/etc/apache2/sites-available/your_website-ssl.conf

注意!新配置文件应在sites-available目录中创建。

使用任何文本编辑器打开新配置文件,将端口更改为443(HTTPS连接的默认端口)并添加SSL指令。新的443端口的虚拟主机示例可能看起来如下:

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

SSLEngine on
SSLCertificateFile /etc/ssl/example_com.crt
SSLCertificateKeyFile /etc/ssl/private/example_com.key
SSLCertificateChainFile /etc/ssl/example_com.ca-bundle
< /VirtualHost >

注意! 从Apache 2.4.8开始,'SSLCertificateChainFile'指令已过时。中介证书(CA捆绑)可以直接添加到'SSLCertificateFile'之后。

通过运行以下命令启用新的SSL配置文件:

sudo a2ensite your_website-ssl.conf

当创建新的虚拟主机时,保存文件并运行语法检查:

apachectl -t

如果系统显示'语法正确',请运行以下命令重新加载Apache以使更改生效:

sudo service apache2 reload

如果出现语法错误,系统将立即显示以进行故障排除。

SSL安装可以使用这些工具进行验证:这里这里

为了保存SEO排名,建议将所有HTTP请求永久复位向到网站的安全HTTPS版本。

注意!如果您使用的是多域名通配符证书,则需要修改为每个域/子域的配置文件,除非该域用作ServerAlias。您需要指定要保护的域/子域,并在虚拟主机记录中按照上述方式引用相同的证书文件。

CentOS, Fedora, Red Hat Enterprise Linux (RHEL)

为了使Apache网页服务器运行加密的HTTPS连接,请确保安装mod_ssl,使用以下命令:

sudo yum install mod_ssl

将SSL证书文件(.crt和.ca-bundle)上传到服务器的/etc/pki/tls/certs/活页夹,并将您的私钥文件.key移到/etc/pki/tls/private/以便管理。

要开始SSL安装,请找到包含< VirtualHost *:80 >...< /VirtualHost >设置的Apache配置文件,以便于您网站的HTTP连接。
此文件的默认位置可能有所不同,并且取决于服务器配置和操作系统版本。
在大多数情况下,适当的设置可以在CentOS、Fedora、RHEL操作系统的/etc/httpd/conf/httpd.conf文件中找到。

以下命令可能会对定位正确的配置文件有帮助:

httpd -S

输出可能显示端口(80)、域名(example.com)、配置文件路径(/etc/httpd/conf/httpd.conf)和虚拟主机的行号(355),该虚拟主机开始HTTP连接。

apach3

接下来的输出指出Apache已经有一个安全HTTPS连接的配置文件,因此您需要根据SSL续期部分进行更新。

apach4

如果您没有看到带有域名的443端口行,请在同一配置文件中创建80端口的虚拟主机块的副本,将端口更改为443(HTTPS连接的默认端口),并添加SSL指令。新的443端口虚拟主机示例可能如下所示:

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

SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/example_com.crt
SSLCertificateKeyFile /etc/pki/tls/certs/example_com.key
SSLCertificateChainFile /etc/pki/tls/certs/example_com.ca-bundle

< /VirtualHost >

注意! 从Apache 2.4.8开始,'SSLCertificateChainFile'指令已过时。中介证书(CA捆绑)可以直接添加到'SSLCertificateFile'之后。

当新虚拟主机创建时,保存文件并运行语法检查:

httpd -t

如果系统显示'语法正确',请运行以下命令重新加载Apache以使更改生效:

sudo service httpd reload

如果出现任何语法错误,系统将立即显示以供排查。

SSL安装可以使用这些工具进行验证:这里这里

为了保存SEO排名,建议将所有HTTP请求永久复位向到网站的安全HTTPS版本。

注意!如果您使用的是多域名或通配符证书,则需要修改每个为其签发SSL证书的域/子域的配置文件,除非该域用作ServerAlias。您需要指定要保护的域/子域,并在虚拟主机记录中按照上述方式引用相同的证书文件。

SSL续期

SSL续期指令略有不同,当任何SSL证书之前已经为此网站安装时可能会有用。要获取具有延长到期日期的新SSL证书,请确保已完成所有续期步骤。

一旦您拥有续期的SSL证书文件(.crt和.ca-bundle),请将其上传到您的托管服务器,并像上面所描述的那样找到包含当前HTTPS设置的Apache配置文件。

使用任何文本编辑器打开该文件,并更新指向新证书、CA捆绑和私钥文件的路径,位于服务器区块< VirtualHost *:443 >...< /VirtualHost >中,并包含为您的域名指定的ServerName

当现有的虚拟主机更新后,请保存该文件并运行语法检查:

apachectl -t(Debian, Ubuntu等)
httpd -t(RHEL, CentOS等)

如果系统显示'语法正确',请运行以下命令重新加载Apache以使更改生效:

sudo service apache2 reload(Debian, Ubuntu等)
sudo service httpd reload(RHEL, CentOS等)

SSL安装和新到期日期可以使用这些工具进行验证:这里这里