实现给Nginx的指定网站开启basic认证——http基本认证

一、问题描述

        目前我们配置的网站内容都是没有限制,可以让任何人打开浏览器都能够访问,这样就会存在一个问题(可能会存在一些恶意访问的用户进行恶意操作,直接访问到我们的敏感后台路径进行操作,风险就会很大);并且我们也只是希望这个网站只有我们自己能够访问,其他人访问不了。

二、问题分析

1、我们的网站目前能够让任何人都打开浏览器访问;

2、只是希望这个网站只有我们自己能够访问,其他人访问不了;

根据分析出的的问题其实是需要给在nginx上部署的指定网站开启basic认证即可实现。

三、实现方法

3.1、生成htpasswd的账号密码文件

3.1.1、通过在线的htpasswd网站生成

可以直接在浏览器中输入【htpasswd在线】即可查询到,也可以使用我这里提供的这2个

在线 htpasswd 生成器OSCHINA.NET在线工具,ostools为开发设计人员提供在线工具,提供jsbin在线 CSS、JS 调试,在线 Java API文档,在线 PHP API文档,在线 Node.js API文档,Less CSS编译器,MarkDown编译器等其他在线工具icon-default.png?t=N7T8https://tool.oschina.net/htpasswd在线htpasswd生成器在线htpasswd生成工具,在线nginx htpasswd生成icon-default.png?t=N7T8https://www.lddgo.net/encrypt/htpasswd

 使用在线生成器获取到生成结果后复制该结果,然后在到指定路径下创建一个文件然后将结果粘贴上去就行。

# 1、进入需要放置basic用户和密码文件的路径(没有指定路径的话需要使用mkdir nginx命令创建)
mkdir -p /opt/nginx/basicauth/
cd /opt/nginx/basicauth/# 2、直接在/opt/nginx/basicauth/路径下创建一个名为用户名b.coffeemilk.com.htpasswd的basic文件,然后将我们在在线网站设置用户为coffeemilk,密码为123456的结果粘贴到b.coffeemilk.com.htpasswd文件即可
touch b.coffeemilk.com.htpasswd
vi b.coffeemilk.com.htpasswd

3.1.2、安装htpasswd工具在本机生成

# 安装htpasswd工具命令
yum install httpd-tools -y

# 查看htpasswd的用法命令
htpasswd --help

htpasswd命令的参数详解
序号参数参数说明
1-c创建一个新文件
2-n不更新文件;只是在屏幕上显示文件内容
3-b直接在命令行中输入密码,而不是提示后再输入密码
4-i不用验证即可直接从输入流中读取到密码内容(只要是方便脚本使用)
5-m强制对密码进行MD5加密(默认)
6-2强制对密码进行SHA-256哈希加密(安全)
7-5强制对密码进行SHA-512哈希加密(安全)
8-B强制对密码进行bcrypt加密(非常安全)
9-C设置用于bcrypt算法的计算时间
(越高越安全,但速度越慢,默认值:5,有效值:4到31)
10-r设置用于SHA-256、SHA-512算法的轮数
(越高越安全,但速度越慢,默认值:5000)
11-d强制对密码进行CRYPT加密(最多8个字符,不安全)
12-s强制对密码进行SHA-1加密(不安全)
13-p不对密码进行加密(明文,不安全)
14-D删除指定的用户
15-v验证指定用户的密码
在Windows和NetWare以外的其他系统上,“-p”标志可能不起作用;SHA-1算法不使用盐,其安全性不如MD5算法
# 1、进入需要放置basic用户和密码文件的路径(没有指定路径的话需要使用mkdir nginx命令创建)
mkdir -p /opt/nginx/basicauth/
cd /opt/nginx/basicauth/# 2、直接在/opt/nginx/basicauth/路径下创建用户名为coffeemilk的basic用户名和密码文件命令
htpasswd -c ./a.coffeemilk.com.htpasswd coffeemilk

# 在当前目录下生成一个b.coffeemilk.com.htpasswd文件,用户名coffeemilk,密码123456789,默认采用MD5加密方式
htpasswd -bc ./b.coffeemilk.com.htpasswd coffeemilk 123456789# 在当前目录下生成一个b.coffeemilk.com.htpasswd文件,用户名coffeemilk,密码123456789,指定采用bcrypt加密方式
htpasswd -Bbc ./b.coffeemilk.com.htpasswd coffeemilk 123456789# 在原有密码文件中增加下一个用户
htpasswd -b ./b.coffeemilk.com.htpasswd test 123456# 删除指定路径下basic文件内的指定用户(比如删除/opt/nginx/basicauth路径下的这个b.coffeemilk.com.htpasswd的basic文件里面的test用户)
htpasswd -D /opt/nginx/basicauth/b.coffeemilk.com.htpasswd test

3.2、给需要配置的网站设置basic认证

实现将Nginx的每个网站配置单独的nginx配置文件——每个网站单独管理icon-default.png?t=N7T8https://blog.csdn.net/xiaochenXIHUA/article/details/140416476?spm=1001.2014.3001.5501进入我们每个网站单独的nginx配置文件修改需要设置basic内容的网站文件即可修改内容如下:

# 进入每个网站对应的单独nginx配置文件路径命令
cd /etc/nginx/conf.d# 编辑指定的网站需要配置basic的nginx配置文件(比如给b.coffeemilk.com网站单独的nginx配置文件b.coffeemilk.com.conf进行编辑)命令
vi b.coffeemilk.com.conf
#auth_basic表示开启这个功能,"b.coffeemilk.com"是备注信息,随便写,一些老浏览器能看到,新浏览器都看不到备注信息了。
auth_basic "b.coffeemilk.com";# 这是basic账号密码文件存放的位置
auth_basic_user_file /opt/nginx/basicauth/b.coffeemilk.com.htpasswd;

3.3、检查配置的Nginx内容是否正确和重启Nginx服务

nginx -t
systemctl restart nginx

3.4、验证basic的效果

         在浏览器输入自己已经设置了basic认证的网站(比如我这里的是http://b.coffeemilk.com/),打开该网站后无法直接看到网站内容会直接有一个输入账号密码的弹窗,输入正确后才能够看到网站内容表示成功了,如下图所示:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/45504.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

云原生周刊:Score 成为 CNCF 沙箱项目|2024.7.15

开源项目 Trident Trident 是由 NetApp 维护的全面支持的开源项目。它从头开始设计,旨在通过行业标准接口(如容器存储接口 CSI)帮助您满足容器化应用程序对持久性存储的需求。 Monokle Monokle 通过提供用于编写 YAML 清单、验证策略和管…

浅谈微服务

技术方法论:向微服务迈进: 理论:“软件研发中任何一项技术、方法、架构都不可能是银弹"—Fred Brooks 哪些场景适合用微服务,呢些不适用?(微服务存在哪些理解误区、应用前提) 一些被验证过…

Why can‘t I access GPT-4 models via API, although GPT-3.5 models work?

题意:为什么我无法通过API访问GPT-4模型,尽管GPT-3.5模型可以工作? 问题背景: Im able to use the gpt-3.5-turbo-0301 model to access the ChatGPT API, but not any of the gpt-4 models. Here is the code I am using to tes…

【雷丰阳-谷粒商城 】【分布式高级篇-微服务架构篇】【22】【RabbitMQ】

持续学习&持续更新中… 守破离 【雷丰阳-谷粒商城 】【分布式高级篇-微服务架构篇】【22】【RabbitMQ】 Message Queue 消息队列异步处理应用解耦流量控制 消息中间件概念RabbitMQ概念MessagePublisherExchangeQueueBindingConnectionChannelConsumerVirtual HostBroker图…

Django prefetch_related()方法

prefetch_related的作用 prefetch_related()是 Django ORM 中用于优化查询性能的另一个重要方法,尤其在处理多对多(ManyToMany)关系和反向关系时非常有用。它允许你预加载相关对象,从而减少数据库查询次数。 1,创建应…

【香橙派】Orange pi AIpro开发板使用之一键部署springboot项目

前言 最近有幸收到一份新款 OrangePi AIpro 开发板,之前手里也捣鼓过一些板子,这次尝试从零开始部署一个简单的后端服务。OrangePi AIpro 采用昇腾AI技术路线,具体为4核64位处理器AI处理器,可配16GB内存容量,各种复杂应…

数字化赋能,加油小程序让出行更便捷高效

在快节奏的现代生活中,每一次加油不仅是车辆续航的必要步骤,也成为了人们日常生活中不可或缺的一环。随着科技的飞速发展,传统加油模式正逐步向智能化、便捷化转型,其中,加油小程序作为这股浪潮中的佼佼者,…

el-date-picker手动输入日期,通过设置开始时间和阶段自动填写结束时间

需求&#xff1a;根据开始时间&#xff0c;通过填写阶段时长&#xff0c;自动填写结束时间&#xff0c;同时开始时间和节数时间可以手动输入 代码如下&#xff1a; <el-form ref"ruleForm2" :rules"rules2" :model"formData" inline label-po…

B树与B+树的区别

B树和B树都是用于数据库和文件系统的平衡树数据结构&#xff0c;但它们有一些显著的区别&#xff1a; 节点结构&#xff1a; B树&#xff1a;每个节点存储数据和指向子节点的指针。叶子节点也包含数据。 B树&#xff1a;内部节点只存储索引值&#xff0c;不存储实际数据。所有…

yolov5 上手

0 介绍 YOLO(You Only Look Once)是一种流行的物体检测和图像分割模型&#xff0c;由华盛顿大学的约瑟夫-雷德蒙&#xff08;Joseph Redmon&#xff09;和阿里-法哈迪&#xff08;Ali Farhadi&#xff09;开发。YOLO 于 2015 年推出&#xff0c;因其高速度和高精确度而迅速受到…

人工智能算法工程师(中级)课程13-神经网络的优化与设计之梯度问题及优化与代码详解

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下人工智能算法工程师(中级)课程13-神经网络的优化与设计之梯度问题及优化与代码详解。 文章目录 一、引言二、梯度问题1. 梯度爆炸梯度爆炸的概念梯度爆炸的原因梯度爆炸的解决方案 2. 梯度消失梯度消失的概念梯度…

vue2中父组件向子组件传值不更新视图问题解决

1. 由于父组件更新了props里面的值, 但是子组件第一次接收后再修改没有监听到. 父组件修改值的时候使用this$set解决问题. 在 Vue 2 中&#xff0c;this.$set 通常用于更新数组中的特定元素。如果你想更新整个数组&#xff0c;可以直接赋值一个新的数组&#xff0c;或者你可以…

powerdesigner导出表数据库设计文档excel

1、连接数据库&#xff0c;导出表结构的sql脚本 2、打开powerdesigner&#xff0c;生成项目空间表 sql脚本用第一步的脚本 3、用script脚本生成excel 脚本信息 Option Explicit Dim rowsNum rowsNum 0 -------------------------------------------------------------…

CV12_ONNX转RKNN模型(谛听盒子)

暂时简单整理一下&#xff1a; 1.在边缘设备上配置相关环境。 2.配置完成后&#xff0c;获取模型中间的输入输出结果&#xff0c;保存为npy格式。 3.将onnx格式的模型&#xff0c;以及中间输入输出文件传送到边缘设备上。 4.编写一个python文件用于转换模型格式&#xff0c…

Git---git本地配置commit_template提交模板,规范开发

如何在Git中配置Commit Template以规范开发 在软件开发过程中&#xff0c;规范化的提交信息&#xff08;commit messages&#xff09;对于项目的可维护性和协作效率至关重要。Git 提供了配置 commit template 的功能&#xff0c;允许开发者预设一个模板&#xff0c;用于在提交…

[iOS]内存分区

[iOS]内存分区 文章目录 [iOS]内存分区五大分区栈区堆区全局区常量区代码区验证内存使用注意事项总结 函数栈堆栈溢出栈的作用 参考博客 在iOS中&#xff0c;内存主要分为栈区、堆区、全局区、常量区、代码区五大区域 还记得OC是C的超类 所以C的内存分区也是一样的 iOS系统中&a…

51单片机STC89C52RC——19.1 SG90舵机(伺服电机)

目的/效果 独立按键K1&#xff0c;K2 实现加舵机减角度增减&#xff0c;LCD1602显示舵机转角度数&#xff08;上电默认90度&#xff09; 一&#xff0c;STC单片机模块 二&#xff0c;SG90舵机 2.1 简介 舵机只是我们通俗的叫法&#xff0c;它的本质是一个伺服电机&#xf…

react 案例的实现

先看一下如下效果 效果 这是一个 简单的 效果 左边是用户名进行登录 右边是一个答题还有遮罩 相信大家还有刚刚创建好的 react 脚手架了&#xff0c;没有的话可以运行以下命令 creact-react-app 项目名称 把项目名称四个字 改成 自己想要的一个名字 最好是英文的在 App.js中去…

python xpath常用代码功能

1、从文件中读取html内容&#xff0c;然后xpath加载 with open(FilePath, r,encodingutf8) as file:html file.read() tree etree.HTML(html) 2、基本定位语法 / 从根节点开始选取 /html/div/span // 从任意节点开始选取 //input . 选取当前节点 .…

Web开发:<br>标签的作用

br作用 介绍基本用法常见用途注意事项使用CSS替代 介绍 在Web开发中&#xff0c;<br> 标签是一个用于插入换行符的HTML标签。它是“break”的缩写&#xff0c;常用于需要在文本中强制换行的地方。<br> 标签是一个空标签&#xff0c;这意味着它没有结束标签。 基本…