實現給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.pswp.cn/web/45504.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/45504.shtml
英文地址,請注明出處:http://en.pswp.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;這意味著它沒有結束標簽。 基本…