1. 程式人生 > >Linux-LAMP- Apache用戶認證

Linux-LAMP- Apache用戶認證

密碼文件 doc linux sha .com 用戶認證 com vpd serve

打開網站,需要輸入用戶名和密碼。和其他的用戶名和密碼不一樣,瀏覽器打開網站,界面什麽都沒有,輸入用戶名和密碼之後,才能訪問網頁,目的增加安全性,但是用戶體驗不好

vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf //把123.com那個虛擬主機編輯成如下內容
<VirtualHost *:80>
DocumentRoot "/data/wwwroot/www.123.com"
ServerName www.123.com
<Directory /data/wwwroot/www.123.com> //指定認證的目錄,針對那個目錄去做用戶認證

AllowOverride AuthConfig //這個相當於打開認證的開關,如果沒有代表沒有開啟認證
AuthName "123.com user auth" //自定義認證的名字,作用不大
AuthType Basic //認證的類型,一般為Basic,其他類型沒用過
AuthUserFile /data/.htpasswd //指定密碼文件所在位置
require valid-user //指定需要認證的用戶為全部可用用戶,用戶名密碼文件裏面,所定義的用戶
</Directory>
</VirtualHost>

/usr/local/apache2.4/bin/htpasswd -c -m /data/.htpasswd aming #生成用戶名密碼。-c創建,-m,md5加密,指定密碼文件所在位置,
技術分享圖片
當第二次創建時,不需要-c,因為第一次已經創建了
技術分享圖片

重新加載配置-t , graceful
技術分享圖片
綁定hosts,瀏覽器測試
技術分享圖片
技術分享圖片
curl -x127.0.0.1:80 www.123.com //狀態碼為401,401訪問需要做用戶驗證

註釋: -u用戶名:密碼
技術分享圖片

curl -x127.0.0.1:80 -uaming:passwd www.123.com //狀態碼為200

還可以針對單個文件進行認證

<VirtualHost *:80>
DocumentRoot "/data/wwwroot/www.123.com"
ServerName www.123.com
<FilesMatch admin.php> #當訪問的文件,訪問admin.php時,才需要進行下面的操作
AllowOverride AuthConfig
AuthName "123.com user auth"
AuthType Basic
AuthUserFile /data/.htpasswd
require valid-user
</FilesMatch>
</VirtualHost>

Linux-LAMP- Apache用戶認證