如何在 Rocky Linux 8 / CentOS 8 上使用 Let’s Encrypt SSL 配置 Nginx 服务器块和保护 Nginx

Nginx 服务器块相当于 Apache 虚拟主机。 它使用户可以灵活地在同一台服务器上托管多个网站。 这是一种具有成本效益的托管网站的方法,而不是设置不同的服务器并为不同的域配置它们。

在本演练中,我们将演示 Nginx 服务器块的配置。 之后,我们将向您展示如何使用 Let’s Encrypt SSL 来保护网络服务器,这是一个免费的 SSL。

先决条件

在继续之前,请确保已安装 Nginx。 我们有一个全面的教程,通过在 CentOS 8 上安装 l Nginx。另外,确认您的域名指向您的虚拟服务器的公共 IP 地址。 为确保这一点,请前往您的域名供应商并将 A 记录配置为指向服务器的 IP。

在这里,IP 地址指向名为的域 linuxtechgeek.info 我们将在本指南中使用它。

步骤 1:为域创建文档根

我们将首先为我们的域创建一个目录,用于存储网站的文件。 因此,请运行以下命令来完成此操作。

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

出于演示目的,我们将创建一个示例 索引.html 文件。

$ sudo vim /var/www/linuxtechgeek.info/html/index.html

粘贴以下 HTML 行。

<html>   <head>   <title>Welcome to my domain.info</title>   </head>   <body>   <h1>Hey fellaz!!.The server block is working.</h1>   </body>  </html>

当然,您可以根据自己的喜好随意编辑正文中的内容。 接下来,配置域目录的所有权以避免任何权限故障。

$ sudo chown -R nginx /var/www/linuxtechgeek.info/

并设置权限,如图所示。

$ sudo chmod -R 755 /var/www/linuxtechgeek.info/

伟大的! 现在让我们配置服务器块文件。

步骤 2:创建 Nginx 服务器块文件

我们将在 Nginx 服务器块文件中配置 /etc/nginx/conf.d 目录如下。

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

粘贴以下配置

server {   listen 80;   server_name linuxtechgeek.info www.linuxtechgeek.info;   root /var/www/linuxtechgeek.info/html;   index index.php index.html index.htm;   access_log/var/log/nginx/linuxtechgeek.info.access.log;   error_log /var/log/nginx/linuxtechgeek.info.error.log;  }

Save 并退出。 完成后,验证所有配置是否正确。

$ sudo nginx -t

从输出来看,一切看起来都很好。 要应用所做的所有更改,请重新启动 Nginx 网络服务器。

$ sudo systemctl restart nginx

并确保它正在运行。

$ sudo systemctl status nginx

现在浏览您的网站,您将被定向到您的服务器块 index.html 文件。

https://domain-name.come

第 3 步:使用 Let’s Encyrpt SSL 保护 Nginx

我们的服务器块已经设置好了,但是网络服务器还没有加密。 使用 SSL 证书加密站点对于保护发送到 Web 服务器和从 Web 服务器发送的信息至关重要。 SSL 证书还将提高您网站的 Google 排名并促进与客户的互动。

Let’s Encrypt 是一个免费的全球 CA(证书颁发机构),它允许用户使用免费的 SSL / TLS 证书获取和保护他们的站点。 我们将安装 Certbot,它将自动安装来自 Let’s Encrypt 的免费 SSL 证书。

$ sudo dnf install certbot python3-certbot-nginx

安装后,运行cerbot如下安装Let’s Encrypt SSL证书

$ sudo certbox --nginx

按照提示进行操作。

步骤 3:管理证书续订

Let’s Encrypt 证书的有效期最长为 90 天。 但是,将在到期前 20 天向您发送通知,并从 10 天到最后一天向您发送更多通知。

您可以使用以下命令手动更新证书:

$ sudo certbot renew 

要自动更新,请创建一个新的 cron 作业。

$ crontab -e

附加此行并保存更改。

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

就是这样! 这就是您如何配置 Nginx 服务器块并使用 Let’s Encrypt SSL 保护您的 Web 服务器的方法。