1、簡介
對經常上網的使用者有時會遇到這種情況:當通路一些網站的某些資源時,浏覽器彈出一個對話框,要求輸入使用者名和密碼才能擷取資源的通路。實際上,這是使用者認證的一種技術。使用者認證是保護網絡系統資源的第一道防線,它控制着所有登入并檢查通路使用者的合法性,其目标是僅讓合法使用者以合法的權限通路網絡系統的資源。基本的使用者認證技術是“使用者名+密碼”。
2、Apache的使用者認證,基本認證方式Basic配置
(1)Basic 認證是HTTP 中非常簡單的認證方式,因為簡單,是以不是很安全,不過仍然非常常用。當一個用戶端向一個需要認證的HTTP伺服器進行資料請求時,如果之前沒有認證過,HTTP伺服器會傳回401狀态碼,要求用戶端輸入使用者名和密碼。使用者輸入使用者名和密碼後,使用者名和密碼會經過BASE64加密附加到請求資訊中再次請求HTTP伺服器,HTTP伺服器會根據請求頭攜帶的認證資訊,決定是否認證成功及做出相應的響應。
(2)配置一個本地目錄的basic認證:
①建立目錄:

②在子配置檔案中添加:
vim /etc/httpd/conf.d/test.conf <Directory "/var/www/html/secret"> AuthType Basic 認證方式 AuthName "Secret" 提示資訊 AuthUserFile "/etc/httpd/conf.d/.htusers" 存放使用者的檔案 (需建立驗證檔案htpasswd -c /etc/httpd/conf.d/.htpusers wang) Require user http1 http2 定義允許通路的使用者 </Directory>
允許賬号檔案中的所有使用者登入通路:Require valid-user
③使用專用指令完成此類檔案的建立及使用者管理:
htpasswd [options] /PATH/HTTPD_PASSWD_FILE username
-c:自動建立檔案,僅應該在檔案不存在時使用
-m:md5格式加密,預設方式
-s: sha格式加密
-D:删除指定使用者
例:htpasswd -c /etc/httpd/conf.d/.htpusers wang 建立使用者和設定密碼,預設使用md5加密 htpasswd /etc/httpd/conf.d/.htpusers mage 注意:隻有當第一次建立使用者時需要加-c,否則後面建立使用者會覆寫之前的使用者
④重新啟動服務:service httpd start
⑤測試:在linux上:
curl http://192.168.159.125/secret
在windows上測試:http://192.168.159.125/secret,會彈出使用者認證界面
比較常見的錯誤:
一個是http的80端口被占用,我們需要修改/etc/httpd/conf/httpd.conf中兩處地方:Listen 8080 ServerName localhost:8080,這裡統一改成8080了
本文轉自 優果馥思 51CTO部落格,原文連結:http://blog.51cto.com/youguofusi/1974864