您当前的位置:首页 > 电脑百科 > 站长技术 > 服务器

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

时间:2023-03-31 12:10:33  来源:微信公众号  作者:TIAP

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 自启动,可以使用如下命令:

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

编辑如下内容:

<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,可参照如下手册:

​https://itsfoss.com/install-snap-linux/?ref=linux-handbook​

安装完成后,使用以下命令安装 certbot:

sudo snap install --classic certbot

最后,创建一个指向certbot目录的符号链接:

sudo ln -s /snap/bin/certbot /usr/bin/certbot

检查安装:

certbot --version

 

图片

 

5,安装 certificates

每周最多可以申请 50 个证书,因此在初始安装测试阶段,可以使用测试证书。

安装测试证书,可使用如下命令:

sudo certbot --nginx --test-cert

执行上述命令,会要求键入如下问题:

1)输入电子邮件地址以接收系统消息;

2)使用提供的链接地址下载使用条款文件(pdf),如果统一,按 Y 键并回车;

3)订阅邮件列表是可选的,你可以通过该列表接收时事通讯;

4)它将列出请求的可用域名。你可以手动选择一个或两个。如果你想要列出的每个域的证书,请将其留空,然后点击回车键。

 

图片

 

如果一切顺利,没有发生错误,那么可以继续安装正式证书:

sudo certbot --nginx

要求确认的问题跟测试证书差不多,除了会多出一个不同的问题:

由于我们已经安装了测试证书,因此有两个选择:

1)重新安装现有证书(在本例中是测试证书);

2)续订和更换证书。

执行第二种情况,如下图:

 

图片

 

这样就完成了,可以使用 https 访问网站了:

 

图片

 

Certbot 计划每12小时运行一次,如果现有证书过期,它将续订证书。您可以使用以下方法检查时间:

systemctl list-timers

 

图片

 

如果要手动更新,可使用如下命令:

 
sudo certbot renew

 



Tags:服务器   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
暴雪公布国服规则:当服务器开启时,将保证账号数据被完整保留
新浪科技讯 4月10日上午消息,暴雪娱乐、微软游戏与网易今日共同宣布,暴雪娱乐旗下的游戏作品,将根据更新后的游戏发行协议自今年夏季开始陆续重返中国大陆市场。消息公布后,暴雪...【详细内容】
2024-04-10  Search: 服务器  点击:(2)  评论:(0)  加入收藏
异步Rust:构建实时消息代理服务器
在本文中,我们将深入研究使用Rust构建实时消息代理服务器,展示其强大的并发特性。我们将使用Warp作为web服务器,并使用Tokio来管理异步任务。此外,我们将创建一个WebSocket客户...【详细内容】
2024-02-01  Search: 服务器  点击:(58)  评论:(0)  加入收藏
哪种服务器操作系统更好呢?
在当今的IT世界中,服务器操作系统扮演着至关重要的角色。它们是确保服务器能够高效、安全地运行的关键因素。然而,对于许多人来说,服务器操作系统的种类和特点可能是一个复杂的...【详细内容】
2024-01-30  Search: 服务器  点击:(76)  评论:(0)  加入收藏
什么是VPS服务器
VPS服务器是一种虚拟化技术,它将一台物理服务器划分为多个虚拟的独立服务器,每个虚拟服务器都可以拥有自己的操作系统、运行环境、应用程序等。这种技术使得每个虚拟服务器可...【详细内容】
2024-01-30  Search: 服务器  点击:(70)  评论:(0)  加入收藏
VPS服务器下载速度慢?这五招帮你提速
VPS服务器下载速度慢可能会让用户感到沮丧,尤其是对于需要大量下载和上传数据的用户。幸运的是,有一些方法可以帮助您提高VPS服务器的下载速度,使您的在线体验更加顺畅。在本文...【详细内容】
2024-01-30  Search: 服务器  点击:(57)  评论:(0)  加入收藏
美国VPS和英国VPS:地理位置对服务器性能的影响
在今天的数字时代,VPS已成为在线业务和网站托管的关键组成部分。然而,选择合适的VPS主机服务时,地理位置通常被忽视,尽管它对服务器性能有着重要的影响。本文将探讨美国VPS和英...【详细内容】
2024-01-26  Search: 服务器  点击:(55)  评论:(0)  加入收藏
如何判断服务器所需带宽:基于业务需求和流量模式的关键考量
在选择服务器时,带宽是一个重要的考虑因素。带宽的大小直接影响到网站的加载速度和用户的访问体验。那么,如何判断服务器需要多大的带宽呢?本文将为你揭示这一关键问题的答案...【详细内容】
2024-01-26  Search: 服务器  点击:(74)  评论:(0)  加入收藏
计算机服务器中了mallox勒索病毒解密方案计划,勒索病毒解密措施
计算机技术的不断应用与发展,为企业的生产运营提供了有利条件,但网络安全威胁无处不在。近期,广西某生物制药企业的计算机服务器遭到了mallox勒索病毒攻击,导致企业的计算机所有...【详细内容】
2024-01-26  Search: 服务器  点击:(88)  评论:(0)  加入收藏
服务器内存空间及IO操作原理解析
服务器的内存空间分为内核空间和用户空间,而我们编写的程序通常在用户空间中运行。在进行读写操作时,我们直接操作的是用户缓冲区,而用户缓冲区的内容来自于内核缓冲区。这种内...【详细内容】
2024-01-23  Search: 服务器  点击:(44)  评论:(0)  加入收藏
服务器证书和SSL证书有啥区别?
在互联网经济时代,随着越来越多的信息以及合作都是从企业官网开始的,因此绝大多数企业都会为自己的网站配置SSL证书,以提高安全性。在接触SSL证书时,也有很多人称之为服务器证书...【详细内容】
2024-01-10  Search: 服务器  点击:(65)  评论:(0)  加入收藏
▌简易百科推荐
为什么Nginx被称为“反向”代理呢?
Nginx(发音为"engine-x")是一款高性能、轻量级的开源Web服务器软件,也可用作反向代理服务器、负载均衡器和HTTP缓存。Nginx之所以有被称为“反向”代理,是因为它充当客户端设备...【详细内容】
2024-02-01  coderidea  微信公众号  Tags:Nginx   点击:(60)  评论:(0)  加入收藏
哪种服务器操作系统更好呢?
在当今的IT世界中,服务器操作系统扮演着至关重要的角色。它们是确保服务器能够高效、安全地运行的关键因素。然而,对于许多人来说,服务器操作系统的种类和特点可能是一个复杂的...【详细内容】
2024-01-30    简易百科  Tags:操作系统   点击:(76)  评论:(0)  加入收藏
什么是VPS服务器
VPS服务器是一种虚拟化技术,它将一台物理服务器划分为多个虚拟的独立服务器,每个虚拟服务器都可以拥有自己的操作系统、运行环境、应用程序等。这种技术使得每个虚拟服务器可...【详细内容】
2024-01-30    简易百科  Tags:VPS服务器   点击:(70)  评论:(0)  加入收藏
VPS服务器下载速度慢?这五招帮你提速
VPS服务器下载速度慢可能会让用户感到沮丧,尤其是对于需要大量下载和上传数据的用户。幸运的是,有一些方法可以帮助您提高VPS服务器的下载速度,使您的在线体验更加顺畅。在本文...【详细内容】
2024-01-30  IDC行业观察者    Tags:VPS服务器   点击:(57)  评论:(0)  加入收藏
美国VPS和英国VPS:地理位置对服务器性能的影响
在今天的数字时代,VPS已成为在线业务和网站托管的关键组成部分。然而,选择合适的VPS主机服务时,地理位置通常被忽视,尽管它对服务器性能有着重要的影响。本文将探讨美国VPS和英...【详细内容】
2024-01-26  IDC行业观察者    Tags:服务器   点击:(55)  评论:(0)  加入收藏
如何判断服务器所需带宽:基于业务需求和流量模式的关键考量
在选择服务器时,带宽是一个重要的考虑因素。带宽的大小直接影响到网站的加载速度和用户的访问体验。那么,如何判断服务器需要多大的带宽呢?本文将为你揭示这一关键问题的答案...【详细内容】
2024-01-26  源库科技    Tags:服务器   点击:(74)  评论:(0)  加入收藏
服务器内存空间及IO操作原理解析
服务器的内存空间分为内核空间和用户空间,而我们编写的程序通常在用户空间中运行。在进行读写操作时,我们直接操作的是用户缓冲区,而用户缓冲区的内容来自于内核缓冲区。这种内...【详细内容】
2024-01-23  王建立    Tags:服务器   点击:(44)  评论:(0)  加入收藏
如何在Java环境中安装Nginx?
1. 下载Nginx:首先,前往Nginx官方网站(https://nginx.org/en/download.html)下载新版本的Nginx。选择适合您操作系统的版本,通常有Windows、Linux和Mac等不同操作系统的版本可供...【详细内容】
2024-01-22  敲代码的小动    Tags:Nginx   点击:(61)  评论:(0)  加入收藏
服务器证书和SSL证书有啥区别?
在互联网经济时代,随着越来越多的信息以及合作都是从企业官网开始的,因此绝大多数企业都会为自己的网站配置SSL证书,以提高安全性。在接触SSL证书时,也有很多人称之为服务器证书...【详细内容】
2024-01-10  安信SSL证书    Tags:服务器证书   点击:(65)  评论:(0)  加入收藏
宝塔面板怎样部署java项目?
宝塔面板怎样部署java项目?在使用宝塔面板部署Java项目之前,需要确保已经安装了Java Development Kit (JDK)。接下来,将介绍如何使用宝塔面板来部署Java项目的步骤。步骤一:安装...【详细内容】
2024-01-09  西部数码    Tags:宝塔面板   点击:(113)  评论:(0)  加入收藏
站内最新
站内热门
站内头条