本文介绍如何在Apache服务器配置单域名或多域名以及通配符域名的SSL证书。成功配置SSL证书后,您将能通过HTTPS加密通道安全访问Apache服务器,确保数据传输的安全性。

本文以CentOS操作系统、Apache 2.4.7为例介绍。不同版本的操作系统或Web服务器,部署操作可能有所差异。

前提条件

如未安装 mod_ssl.so,可执行sudo yum install -y mod_ssl命令安装。安装后,可执行httpd -M | grep 'ssl'检查mod_ssl.so是否安装成功。安装成功效果如下图:

步骤一:下载SSL证书

登录  https://letsencrypt.top/ ,下载Apache服务器对应的证书,如图:

解压缩已下载的SSL证书压缩包,解压后获得如下三个文件:

步骤二:在Apache服务器安装证书

1.创建存放证书文件的目录

执行以下命令,在Apache服务器的安装目录下创建一个用于存放证书文件的目录。

# cert目录仅为示例,证书存放目录没有命名限制。
sudo mkdir /etc/httpd/cert

说明:/etc/httpd/ 是使用yum方式安装Apache服务器时默认安装目录。如果您手动修改过该目录或使用其他方式安装的Apache服务器,请根据实际配置调整。

2. 上传证书

将证书文件和私钥文件上传至您创建的用于存放证书文件的目录下。

为确保Apache服务器能够正常启用SSL模块,请按以下步骤修改对应的配置文件:

  • 找到/etc/httpd/conf.modules.d/00-ssl.conf文件,修改LoadModule ssl_module modules/mod_ssl.so配置项,若前面有#号,需移除以取消注释,修改后保存文件。
  • 找到/etc/httpd/conf/httpd.conf文件,修改Include conf.modules.d/*.conf配置项,若前面有#号,需移除以取消注释,修改后保存文件

需要注意的是,上述配置项所在文件的具体位置可能会因系统版本或安装方式而有所不同。为了找到这些配置的确切位置,您可以使用grep 命令来在Linux系统上查找包含特定文本的所有文件。

#查找包含LoadModule ssl_module的所有文件。
$ sudo grep -r "LoadModule ssl_module" /etc/httpd/
/etc/httpd/conf.modules.d/00-ssl.conf:LoadModule ssl_module modules/mod_ssl.so

#查找包含Include conf.modules.d的所有文件。
$ sudo grep -r "Include conf.modules.d" /etc/httpd/
/etc/httpd/conf/httpd.conf:Include conf.modules.d/*.conf

3. 配置证书

执行以下命令,打开ssl.conf。

sudo vi /etc/httpd/conf.d/ssl.conf

注意

ssl.conf文件在不同操作系统的位置和名称不一样,在没有ssl.conf文件的情况下,请您查看Apache服务器安装目录是否存在conf/extra/http-ssl.conf配置文件。

<VirtualHost *:443>
    ServerName ssl.letsencrypt.top
    DocumentRoot /var/www/html

    # SSL配置
    SSLEngine on
    SSLCertificateFile /etc/httpd/cert/certificate.pem
    SSLCertificateKeyFile /etc/httpd/cert/private.key
    SSLCertificateChainFile /etc/httpd/cert/certificate_chain.crt


    # 其他配置(如PHP支持、目录权限等)
    <Directory /var/www/html>
        Options -Indexes +FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

4. 重启服务

执行以下命令,重启Apache服务器,使修改后配置文件生效,确保SSL模块被正常启用。

systemctl restart httpd

步骤三:验证SSL证书是否安装成功

证书安装完成后,您可通过访问证书的绑定域名验证该证书是否安装成功。

https://yourdomain   #需要将yourdomain替换成证书绑定的域名。

如果网页地址栏出现小锁标志,表示证书已经安装成功。

最后,推荐一下Lets' Encrypt 免费SSL证书申请网站

Let's Encrypt 乐此加密免费SSL证书申请https://www.letsencrypt.top/

更多推荐