网站搜索

如何在 Debian 10 上为 Nginx 安装免费 SSL 证书


设置网站时,您应该牢记的关键考虑因素之一是网站的安全性。 SSL 证书是一种数字证书,用于加密从用户浏览器发送到网络服务器的数据。这样,发送的数据是保密的,不会受到黑客使用 Wireshark 等数据包嗅探器拦截和窃听您的通信的影响。

加密站点的 URL 栏中有一个挂锁符号,后跟缩写词 https,如以下屏幕截图所示。

未加密的网站通常会在 URL 栏上显示“不安全”通知。

先决条件

在开始之前,请确保满足以下要求:

  1. Debian 10 Minimal Server 的运行实例。
  2. 在 Debian 10 上运行带有域设置的 Nginx Web 服务器实例。
  3. 已注册的完全限定域名 (FQDN),其中 A 记录指向 Debian 10 的 IP 地址在您的域名提供商上。

在本教程中,我们将 howtoing.com 指向 IP 地址 192.168.0.104

在本文中,我们将研究如何在 Debian 10 上安装 Let's Encrypt SSL 来获取 Nginx免费 SSL 证书强> 托管网站。

什么是 Let's Encrypt SSL

Let’s Encrypt SSL 是来自 EFF (Electronic Frontier Foundation) 的免费证书,有效期为 3 个月,到期后会自动续订。如果您的口袋很紧,这是一种简单且便宜的加密网站的方法。

话不多说,让我们深入了解并在 Nginx Web 服务器上安装 Let’s Encrypt

第 1 步:在 Debian 10 中安装 Certbot

首先,我们需要安装 Certbot – 这是一个获取 Let’s encrypt 数字证书并随后将其部署到 Web 服务器上的软件。为此,我们需要安装python3-certbot-nginx包。但在此之前,我们先更新系统软件包。

sudo apt update

下一步是安装 python3-certbot-nginx 包所需的依赖项。

sudo apt install python3-acme python3-certbot python3-mock python3-openssl python3-pkg-resources python3-pyparsing python3-zope.interface

现在让我们安装python3-certbot-nginx包。

sudo apt install python3-certbot-nginx

步骤 2. 验证 Nginx 服务器块配置

为了让 certbotNginx Web 服务器上自动部署 Let's encrypt SSL 证书,需要配置服务器块。我们在上一篇文章的最后一部分介绍了 Nginx 服务器块的配置。

如果您敏锐地关注,您应该在 /etc/nginx/sites-available/some_domain 处有一个服务器块。在我们的例子中,Nginx 服务器块将是

/etc/nginx/sites-available/linux-console.net

此外,请确保 server_name 指令与您的域名相对应。

server_name linux-console.net linux-console.net;

要确认所有 Nginx 配置是否正确,请运行:

sudo nginx -t

上面的输出表明一切正常。

步骤 3:配置防火墙打开 HTTPS 端口

如果您按照一贯建议配置并启用了 ufw,我们需要允许 HTTPS 协议穿过防火墙,以便每个人都可以访问 Web 服务器。

sudo ufw allow 'Nginx Full'

接下来,重新加载防火墙以使更改生效。

sudo ufw reload

验证我们是否允许该协议通过防火墙。

sudo ufw status

步骤 4:为域部署 Let’s Encrypt SSL 证书

检查完所有设置和配置后,就可以在域站点上获取并部署 Let’s Encrypt SSL 证书了。

sudo certbot --nginx -d domain-name  -d www.domain-name.com 

在我们的例子中,我们将有

sudo certbot --nginx -d linux-console.net -d linux-console.net

在第一步中,系统将提示您输入您的电子邮件地址。 输入您的地址并按Enter

接下来,系统将要求您同意服务条款。输入A继续。

Certbot 将继续请求您同意使用您的电子邮件向您发送有关 EFF 最新进展的通知。在这里,您可以选择加入或退出,要选择加入,请输入 Y(是) 并按 Enter。要拒绝参与,请点击N(否)

然后,Certbot 将联系 Let's encrypt,下载 SSL 证书并将其部署到您已创建的 Nginx 服务器块。

在下一部分中,输入 2 将常用 HTTP 流量重定向到 HTTPS。

该证书将部署到您的 Nginx 服务器,并且您将收到一条祝贺通知,确认您的网络服务器现已使用 Let’s Encrypt SSL 加密。

第 5 步:在 Nginx 网站上验证 HTTPS

要通过网络浏览器验证更改,请刷新浏览器选项卡并确保注意到挂锁符号。

单击挂锁图标并选择“证书”选项以查看 SSL 证书详细信息。

将显示所有证书详细信息。

您可以通过测试您网站的 URL (https://www.ssllabs.com/ssltest/) 来进一步验证 Web 服务器的状态。如果网络服务器使用 SSL 证书加密,您将获得如图所示的 A 分数。

结论

本教程到此结束。在指南中,您学习了如何在 Debian 10 上为 Nginx 安装免费的 SSL 证书。