如何使用 Nginx 和 Certbot 创建一个安全的 Web 服务器


如何使用 Nginx 和 Certbot 创建一个安全的 Web 服务器

文章插图
https 应用越来越普遍,现在大多数 web 服务器都使用了 https 。
Let's Encrypt 项目可以让我们免费部署 SSL 证书,但是需要每隔几个月更新一次 。
Certbot 又帮助我们省去了这个麻烦,它可以自动部署新证书和续订现有证书 。
我们可以使用 certbot 和 Nginx 来部署一个基于 https 的 web 服务器 。今天我们就来介绍一下这方面相关的内容,主要包括:
  • 安装 Nginx;
  • Nginx 配置;
  • 安装和使用 certbot 。
我们首先来看一下安装 nginx 。
1,安装 nginx(以 Ubuntu 系统为例)在 Ubuntu 中可以使用如下命令安装 nginx:
sudo apt install nginx安装完成后,检查一下是否安装成功,可以使用查看 nginx 版本的命令,如下:
nginx -v 
如何使用 Nginx 和 Certbot 创建一个安全的 Web 服务器

文章插图
 
启动以及设置 nginx 自启动,可以使用如下命令:
sudo systemctl start nginx && sudo systemctl enable nginx然后配置防火墙(Ubuntu 中使用的 UFW),使 nginx 可以通过防火墙:
sudo ufw allow 'nginx full'2,配置 nginx配置 nginx 中的server模块,首先创建一个文件夹,用于存放 web 服务的页面文件,如下所示:
sudo mkdir -p /var/www/sudoersagar.de/html注:上述命令中sudoersagar.de为示例域名,大家可按自己的需求命名文件夹 。
接下来,使用?? chown 命令??将目录的所有者更新为当前用户:
sudo chown -R $USER:$USER /var/www/sudoersagar.de/html然后使用 chmod 命令更改目录的权限:
 sudo chmod -R 755 /var/www/sudoersagar.de再然后,我们创建一个简单的 html 页面:
vim /var/www/sudoersagar.de/html/index.html编辑如下内容:
【如何使用 Nginx 和 Certbot 创建一个安全的 Web 服务器】<html><head><title>Greetings from Sagar Sharma</title></head><body><h1>Success!The sudoersagar server block is working!</h1></body></html>保存然后退出文本编辑器 。
接下来,创建一个名为 sites-enabled 的文件夹:
sudo mkdir /etc/nginx/sites-enabled然后创建一个简单的 nginx 服务器模块:
vim /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;}}至于上述文件的用途,可参考下图所示:
 
如何使用 Nginx 和 Certbot 创建一个安全的 Web 服务器

文章插图
 
要使网站能够访问,还需要创建一个 从 sites-available 到 sites-enabled 的软连接,如下所示:
sudo ln -s /etc/nginx/sites-available/sudoersagar.de /etc/nginx/sites-enabled/然后使用如下命令测试:
sudo nginx -t 
如何使用 Nginx 和 Certbot 创建一个安全的 Web 服务器

文章插图
 
然后重启 nginx:
sudo nginx -s reload3,创建 DNS A 记录通过 DNS A 记录,可以使用 nginx 公共 IP 地址映射域 。对于大多数供应商来说,这个过程非常简单 。在这里,我使用的是谷歌域名:
 
如何使用 Nginx 和 Certbot 创建一个安全的 Web 服务器

文章插图
 
选择:
  • Type 选择 A;
  • TTL(Time To Live)选择 300
  • 在 data 属性中添加 公网 IP 地址;
  • www 主机名执行相同的选项 。
保存设置 。上述设置起作用,需要几分钟的时间 。
然后使用 dig 命令来检查域名:
dig sudoersagar.de 
如何使用 Nginx 和 Certbot 创建一个安全的 Web 服务器

文章插图
 
如果它已启动并正在运行,它将显示在域中使用的 IP 地址 。
4,设置 certbot接下来我们使用 snaps(Canonical开发的包管理器)来设置 certbot 。
第一步是删除 Ubuntu 系统中已有的 certbot 包:
sudo apt remove certbot但是如果你使用的是 Ubuntu 以外的其他软件,则需要手动配置 snaps,可参照如下手册:


推荐阅读