HTTPS 不再是奢侈品。 你必须在你的网站上有它。
Let’s Encrypt 项目使免费部署 SSL 证书变得更加容易,但每隔几个月就需要更新一次。
证书机器人 为您省去麻烦,因为它会自动部署新证书并更新现有证书。
您可以轻松地将 certbot 与 Nginx 一起使用。 想知道如何?
在本教程中,我将向您介绍以下内容:
- 安装 NGINX
- 添加服务器块
- 安装和使用 certbot
当然,如果已经配置,您可以跳过任何部分。
⚠️要学习本教程,您必须有一个注册域名。
在本教程中,我将使用 AWS VM。 但是你可以使用任何你喜欢的。
只需确保拥有公共 IP; 否则,您将无法将其用作 Web 服务器(这是我之前犯的错误)。
那么让我们从安装 NGINX 开始吧。
1. 在 Ubuntu 上安装 NGINX
由于 NGINX 在 Ubuntu 的默认存储库中可用,因此可以使用以下命令轻松安装它:
sudo apt install nginx
要验证安装,请检查安装的版本:
nginx -v
使用以下命令启动 NGINX 服务并使其在每次启动时启动:
sudo systemctl start nginx && sudo systemctl enable nginx
如果您正在使用 UFW 防火墙(您必须使用),请允许 NGINX 通过它:
sudo ufw allow 'nginx full'
2. 设置 NGINX 服务器块
要设置 NGINX 服务器块,请使用以下命令并替换 sudoersagar.de
使用您自己的域:
sudo mkdir -p /var/www/sudoersagar.de/html
接下来,使用 chown 命令将目录的所有者更新为当前用户:
sudo chown -R $USER:$USER /var/www/sudoersagar.de/html
并使用 chmod 命令更改目录的权限:
sudo chmod -R 755 /var/www/sudoersagar.de
现在,让我们创建一个示例 HTML 索引页面:
nano /var/www/sudoersagar.de/html/index.html
我的索引页面包含以下内容,您也可以使用相同的内容:
<html>
<head>
<title>Greetings from Sagar Sharma</title>
</head>
<body>
<h1>Success! The sudoersagar server block is working!</h1>
</body>
</html>
Save 更改并退出 nano 文本编辑器。
接下来,您必须创建一个名为 sites-enabled
:
sudo mkdir /etc/nginx/sites-enabled
现在,让我们创建一个简单的 NGINX 服务器块:
sudo nano /etc/nginx/sites-available/sudoersagar.de
server {
listen 80;
root /var/www/sudoersagar.de/html;
index index.html;
server_name sudoersagar.de www.sudoersagar.de;
location / {
try_files $uri $uri/ =404;
}
}
如果您不知道服务器块上使用的是什么,这里有一个简短的解释:
Save 更改并退出文本编辑器。
要启用您的网站,您必须创建一个软链接 sites-available
到 sites-enabled
:
sudo ln -s /etc/nginx/sites-available/sudoersagar.de /etc/nginx/sites-enabled/
最后,使用以下命令测试配置文件:
sudo nginx -t

如果一切都正确完成,您将获得与上图相同的输出。
现在,重新加载 NGINX 配置:
sudo nginx -s reload
3.创建DNS A记录
通过 DNS A 记录,您可以将域映射到 NGINX 公网 IP 地址。
对于大多数提供商而言,该过程非常简单。 在这里,我使用的是 google 域。

选择,
A
作为一种类型300
对于 TTL(生存时间)- 添加公网IP地址
data
场地 - 做同样的
www
主机名
Save 记录。
反思这些变化需要时间(我的情况是 2 分钟)。
要检查,您可以使用带域名的 dig 命令:
dig sudoersagar.de

如果它已启动并正在运行,它将显示您用于该域的 IP 地址。
4.设置certbot
要设置 certbot,我将使用 snap(由 Canonical 开发的包管理器)。
第一步是删除 Ubuntu 系统上所有现有的 certbot 包:
sudo apt remove certbot
但是,如果您使用的不是 Ubuntu,则必须手动配置快照。
为此,我们有专门的教程:
完成设置后,使用以下命令安装 certbot:
sudo snap install --classic certbot
最后,创建指向 certbot 目录的符号链接:
sudo ln -s /snap/bin/certbot /usr/bin/certbot
要验证安装,请检查已安装的 certbot 版本:
certbot --version

5.安装证书
⚠️您每周可以申请 50 张证书(最多)。
由于您每周可以申请的证书数量有限,因此使用测试证书是查找可能错误的最佳做法。
要安装测试证书,请使用以下命令:
sudo certbot --nginx --test-cert
它会询问以下内容:
- Enter 您的电子邮件地址以接收紧急续订和政策变更。
- 使用链接下载条款和条件的 PDF,然后按
Y
如果您同意,请按回车键。 - 订阅邮件列表是可选的,您将通过该列表接收新闻通讯。
- 它将列出请求的可用域名。 您可以手动选择一个或两个。 如果您想要列出的每个域的证书,请将其留空并按回车键(我就是这样做的)。

如果没有发现错误,您可以继续安装实际证书:
sudo certbot --nginx
它会问同一组问题,但会添加一个不同的问题。
由于您已经安装了测试证书,因此您有两种选择:
- 重新安装现有证书(在我的例子中是测试证书)
- 更新和更换证书
选择第二个选项并回车:

就是这样! 您已使用 HTTPS 保护您的网站。
现在,如果您检查,到该站点的连接将得到保护:

Certbot 计划每 12 小时运行一次,并将在现有证书过期时更新证书。 您可以使用以下方法检查时间:
systemctl list-timers

如果你想手动更新它们,你可以使用以下命令:
sudo certbot renew
想要实时修补您的 Ubuntu 服务器?
作为最强大的操作系统之一,您可以在不重新启动的情况下实时修补您的 Ubuntu 服务器。
是的,它就是这么强大。 想学习如何? 给你:
我希望您会发现本指南对您有所帮助。
如果您在执行给定步骤时遇到任何错误,请告诉我。
此外,如果您对我接下来应该介绍的内容有任何建议,请在评论中告诉我。