如何加密 Apache 在 Rocky Linux 8 上使用 Let’s Encrypt SSL 证书的 Web 服务器

在网络威胁不断变化的世界中,保护您的网络服务器应该是首要考虑的问题。 提高 Web 服务器安全性的最简单方法之一是使用 SSL 证书对其进行保护。 加密 Web 服务器和用户浏览器之间交换的流量,防止黑客窃听和拦截用户名和密码等机密信息。

Let’s Encrypt 是一个免费的自动化证书颁发机构,可帮助您使用保质期约为 90 天的免费 SSL 证书设置安全的 HTTPS 服务器。 在本指南中,我们将引导您完成使用 Let’s Encrypt SSL 证书保护您的网络服务器的过程。

要求

在我们开始时,我们假设您已经拥有 Apache 网络服务器堆栈安装在您的 Rocky Linux 8 上。如果没有,请查看有关如何在 Rocky Linux 8 上安装 LAMP 服务器的指南。第一步是如何安装的演练 Apache HTTP 网络服务器。

此外,请确保您拥有指向服务器公共 IP 地址的有效域名。 对于本指南,我们将使用名为的域名 linuxtechgeek.info。

第 1 步:安装 EPEL 存储库

马上,我们将开始安装 EPEL(企业 Linux 的额外包)。 这是一个来自 Fedora 为基于 RHEL 的系统提供额外的软件包。

所以,运行命令show。

$ sudo dnf install epel-release

第 2 步:安装 Certbot

安装 EPEL 后,继续安装 证书机器人 , certbot 的 apache 模块和 mod_ssl 这是一个提供加密功能的模块 Apache.

$ sudo dnf install certbot python3-certbot-apache mod_ssl

安装软件包后,重新启动 Apache HTTP 网络服务器。

$ sudo systemctl restart httpd 

此外,确保网络服务器正在运行:

$ sudo systemctl status httpd 

第 3 步:创建虚拟主机文件

下一步它配置一个 Apache 虚拟主机文件。 这是一个将为我们域的 Web 内容提供服务的配置,并将被 certbot 用于促进 Let’s Encrypt 的安装。

因此,为您的网站创建一个文件夹。 在这种情况下,我将创建一个目录 linuxtechgeek.info 这是我的域名指向我的网络服务器的 IP。

$ sudo mkdir -p /var/www/linuxtechgeek.info

将目录所有权分配给 Apache 用户。

$ sudo chown -R apache:apache /var/www/linuxtechgeek.info

接下来,在目录中创建一个虚拟主机文件 /etc/httpd/conf.d 目录。

$ sudo vim /etc/httpd/conf.d/linuxtechgeek.info.conf

粘贴显示的配置并确保替换 linuxtechgeek.info 用你自己的域名

<virtualhost *:80>  ServerName linuxtechgeek.info  ServerAlias www.linuxtechgeek.info  DocumentRoot /var/www/linuxtechgeek.info  ErrorLog /var/log/httpd/linuxtechgeek.info-error.log  CustomLog /var/log/httpd/linuxtechgeek.info-access.log combined  </virtualhost>

Save 并退出配置文件。 然后重启 Apache 网络服务器。

$ sudo systemctl restart httpd

现在让我们获取 SSL 证书。

第 4 步:获取 SSL 证书

最后,要使用 Certbot 安装 Let’s Encrypt,请运行以下命令:

$ sudo certbot --apache

这将引导您完成一系列步骤来配置 SSL 证书、提供您的电子邮件地址、阅读并同意服务条款并选择您想要激活 HTTPS 的名称。

Certbot 将检测您的虚拟主机配置并为所有这些配置请求 Let’s Encrypt SSL 证书。

在 certbot 完成在您的网络服务器上应用 SSL 证书后,继续并通过在 SSL 实验室执行 SSL 服务器测试来测试 SSL 设置。 这是一个在线平台,可以对您站点的 Web 服务器进行深入分析。

步骤 5:配置证书自动续订

如前所述,Let’s Encrypt 证书的有效期仅为 90 天,之后您将需要对其进行更新。 您可以使用以下命令在到期前一天手动更新证书:

$ certbot renew 

更好的方法是设置一个 cron 作业,它可以自动执行证书的更新过程。 因此,打开 crontab 文件。

$ crontab -e

在文件的最后添加这一行并保存更改。

0 0 * * * /usr/bin/certbot renew > /dev/null 2>&1

这是一个包裹。 希望您现在可以放心保护您的 Apache 带有 Let’s Encrypt SSL 证书的网络服务器。