如何在 Debian 10 上为 Nginx 安装免费 SSL 证书
设置网站时,您应该牢记的关键考虑因素之一是网站的安全性。 SSL 证书是一种数字证书,用于加密从用户浏览器发送到网络服务器的数据。这样,发送的数据是保密的,不会受到黑客使用 Wireshark 等数据包嗅探器拦截和窃听您的通信的影响。
加密站点的 URL 栏中有一个挂锁符号,后跟缩写词 https,如以下屏幕截图所示。
未加密的网站通常会在 URL 栏上显示“不安全”通知。
先决条件
在开始之前,请确保满足以下要求:
- Debian 10 Minimal Server 的运行实例。
- 在 Debian 10 上运行带有域设置的 Nginx Web 服务器实例。
- 已注册的完全限定域名 (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 服务器块配置
为了让 certbot 在 Nginx 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 证书。