文章插图
https 应用越来越普遍,现在大多数 web 服务器都使用了 https 。
Let's Encrypt 项目可以让我们免费部署 SSL 证书,但是需要每隔几个月更新一次 。
Certbot 又帮助我们省去了这个麻烦,它可以自动部署新证书和续订现有证书 。
我们可以使用 certbot 和 Nginx 来部署一个基于 https 的 web 服务器 。今天我们就来介绍一下这方面相关的内容,主要包括:
- 安装 Nginx;
- Nginx 配置;
- 安装和使用 certbot 。
1,安装 nginx(以 Ubuntu 系统为例)在 Ubuntu 中可以使用如下命令安装 nginx:
sudo apt install nginx
安装完成后,检查一下是否安装成功,可以使用查看 nginx 版本的命令,如下:nginx -v
文章插图
启动以及设置 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;}}
至于上述文件的用途,可参考下图所示:文章插图
要使网站能够访问,还需要创建一个 从 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 地址映射域 。对于大多数供应商来说,这个过程非常简单 。在这里,我使用的是谷歌域名:文章插图
选择:
- Type 选择 A;
- TTL(Time To Live)选择 300
- 在 data 属性中添加 公网 IP 地址;
- www 主机名执行相同的选项 。
然后使用 dig 命令来检查域名:
dig sudoersagar.de
文章插图
如果它已启动并正在运行,它将显示在域中使用的 IP 地址 。
4,设置 certbot接下来我们使用 snaps(Canonical开发的包管理器)来设置 certbot 。
第一步是删除 Ubuntu 系统中已有的 certbot 包:
sudo apt remove certbot
但是如果你使用的是 Ubuntu 以外的其他软件,则需要手动配置 snaps,可参照如下手册:
推荐阅读
- Golang中如何判断两个Slice是否相等?
- 如何确保自动化时代的网络安全和数据保护?
- 聊聊低代码平台如何选型
- 如何设置自己的保护隐私的 DNS 服务器
- 在 SpringBoot 中使用 Spring AOP 实现接口鉴权
- HTTP缓存如何提高Web应用程序的性能?
- 华为工资是如何评定的?播报
- 书面劳动合同可以补签吗?没签劳动合同如何证明劳动关系?答案看这里!
- 建造师考试|一级建造师难考么?好找工作吗?工作待遇如何?
- 古钱币|如何才能在古钱币圈,立于不败之地?