如何在 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 将通过电子邮件提醒您续订证书,以避免因证书过期而造成的中断。这就是今天的全部内容!