在网络威胁不断变化的世界中,保护您的网络服务器应该是首要考虑的问题。 提高 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 证书的网络服务器。