网站搜索

如何在 CentOS 8 上使用 Let's Encrypt 保护 Nginx


Let’s Encrypt 由电子前沿基金会 (EFF) 于 2016 年 4 月创立,是一种免费的自动化数字证书,完全免费为网站提供 TLS 加密。

Let’s Encrypt 证书的目标是自动执行安全证书的验证、创建、签名以及自动续订。该证书支持使用 HTTPS 协议以简单、轻松的方式与网络服务器建立加密连接,没有任何复杂性。该证书的有效期仅为90天,之后可以激活自动续订。

推荐阅读:如何在 CentOS 8 上使用 Let's Encrypt SSL 证书保护 Apache

在本文中,我们将演示如何安装 Let's Encrypt 来获取免费的 SSL 证书,以保护 CentOS 8 上的 Nginx Web 服务器 (相同的说明也适用于 RHEL 8)。我们还将向您解释如何自动更新您的 SSL 证书。

先决条件

在我们继续确保您检查以下内容之前。

1. 指向网络服务器专用 IP 地址的完全限定域名 (FQDN)。这需要在您的 DNS 网络托管提供商的客户区域中进行配置。在本教程中,我们使用指向 IP 地址 34.70.245.117 的域名 linuxtechwhiz

2. 您还可以通过使用 dig 命令执行正向查找来确认这一点,如图所示。

dig linuxtechwhiz.info

3. Nginx 在网络服务器上安装并运行。您可以通过登录终端并运行以下命令来确认这一点。如果未安装 Nginx,请按照我们的文章在 CentOS 8 上安装 Nginx。

sudo systemctl status nginx

4.您还可以通过在网络浏览器上访问网络服务器的 URL 进行验证。

http://server-IP-or-hostname

从URL中,我们可以清楚地看到该网站不安全,因此没有加密。这意味着向网络服务器发出的任何请求都可以被拦截,其中包括关键和机密信息,例如用户名、密码、社会安全号码和信用卡信息等。

现在让我们动手安装Let’s Encrypt

步骤1.在CentOS 8中安装Certbot

要安装Let's Encrypt证书,您首先需要安装certbot。这是一个可扩展的客户端,它从 Let's Encrypt Authority 获取安全证书,并允许您自动验证和配置证书以供网络服务器使用。

使用curl命令下载certbot

sudo curl -O https://dl.eff.org/certbot-auto

接下来,将证书移动到 /usr/local/bin 目录。

sudo mv certbot-auto /usr/local/bin/certbot-auto

接下来,将文件权限分配给 certbot 文件,如图所示。

chmod 0755 /usr/local/bin/certbot-auto

步骤 2. 配置 Nginx 服务器块

Nginx 中的服务器块相当于 Apache 中的虚拟主机。设置服务器块不仅允许您在一台服务器中设置多个网站,还允许 certbot 向证书颁发机构 - CA 证明域的所有权。

要创建服务器块,请运行所示的命令。

sudo vim /etc/nginx/conf.d/www.linuxtechwhiz.info

请务必将域名替换为您自己的域名。然后粘贴下面的配置。

server {
   server_name www.linuxtechwhiz.info;
   root /opt/nginx/www.linuxtechwhiz.info;

   location / {
       index index.html index.htm index.php;
   }

   access_log /var/log/nginx/www.linuxtechwhiz.info.access.log;
   error_log /var/log/nginx/www.linuxtechwhiz.info.error.log;

   location ~ \.php$ {
      include /etc/nginx/fastcgi_params;
      fastcgi_pass 127.0.0.1:9000;
      fastcgi_index index.php;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
   }
}

保存文件并退出文本编辑器。

步骤 3:在 CentOS 8 上安装 Lets Encrypt 证书

现在使用 certbot 命令来初始化 Let’s Encrypt 安全证书的获取和配置。

sudo /usr/local/bin/certbot-auto --nginx

此命令将运行并安装多个 Python 包及其依赖项,如图所示。

此后将出现交互式提示,如下所示:

如果一切顺利,您应该能够在最后看到一条祝贺消息。

要确认您的 Nginx 站点已加密,请重新加载网页并观察 URL 开头的挂锁符号。这表明该网站使用 SSL/TLS 加密进行保护。

要获取有关安全证书的更多信息,请单击挂锁符号并选择“证书”选项。

有关安全证书的更多信息将显示,如下所示。

此外,要测试安全证书的强度,请访问 https://www.ssllabs.com/ssltest/ 并找到有关安全证书状态的更准确和深入的分析。

步骤 4. 更新 Let’s Encrypt 证书

正如我们之前看到的,安全证书的有效期仅为90天,并且需要在到期前续订。

您可以通过运行以下命令来模拟或测试证书续订过程:

sudo /usr/local/bin/certbot-auto renew --dry-run

结论

关于在 CentOS 8 上使用 Let’s Encrypt 保护 Nginx 的教程到此结束。 Let’s Encrypt 提供了一种有效且轻松的方式来保护您的 Nginx 网络服务器,否则手动操作将是一件复杂的事情。

您的网站现在应该已完全加密。距离证书到期日期还有几周,EFF 将通过电子邮件提醒您续订证书,以避免因证书过期而造成的中断。这就是今天的全部内容!