日常工做中,有必要對一些特定的頁面作用戶認證,就是登陸進去的時候,要先輸入用戶名和密碼才能夠進入,這樣作比較安全。
那麼用戶認證怎麼作呢?具體操做見下圖,
輸入命令 cat /usr/local/apache2.4/conf/extra/httpd-vhosts.conf,查看文件內容,肯定更改第二個 VirtualHost 虛擬主機,由於第一個虛擬主機是默認虛擬主機,先無論它。接着輸入命令 vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf,回車,見下圖,
插入上圖紅色框框的內容,保存並退出。
VirtualHost 的內容以下:
<VirtualHost *:80>
DocumentRoot "/data/wwwroot/www.111.com"
ServerName 111.com
ServerAlias www.example.com
<Directory /data/wwwroot/111.com> //指定認證的目錄
AllowOverride AuthConfig //這個至關於打開認證的開關
AuthName "111.com user auth" //自定義認證的名字,做用不大
AuthType Basic //認證的類型,通常爲Basic,其餘類型阿銘沒用過
AuthUserFile /data/.htpasswd //指定密碼文件所在位置
require valid-user //指定須要認證的用戶爲所有可用用戶
</Directory>
</VirtualHost>php
接下來輸入命令 /usr/local/apache2.4/bin/htpasswd -c -m /data/.htpasswd lys ,回車,見下圖,
用 -c 來建立密碼文件,-m 指定密碼類型爲md5加密,lys 直接增長用戶lys。來查看一下文件 /data/.htpasswd,見下圖,
能夠看到文件裏面有一堆亂碼,前面是用戶名 lys,後面是密碼,這是由於用 -m 設置的md5加密的密碼。接着第二次建立用戶 lys2,見下圖,
此次的命令就不用加 -c 選項了,而後查看文件 /data/.htpasswd ,能夠看到多了一行,用戶名是 lys2。
以上就是建立用戶的過程,接下來,從新加載一下配置文件,
開始作測試,輸入命令 curl -x127.0.0.1:80 111.com,回車,見下圖,
提示了401錯誤,說明訪問的內容須要作用戶認證。使用命令 curl -x127.0.0.1:80 111.com -I,回車,能夠看到提示 WWW-Authenticate: Basic realm="111.com user auth"。咱們也能夠在瀏覽器上登陸,先在Windows的hosts上添加網站 111.com,見下圖,
保存,而後到瀏覽器上,訪問 111.com,見下圖,
就能夠看到,登陸須要用戶名和密碼。接着輸入用戶名 lys 和密碼,見下圖,
點擊登陸,就進入下圖,
以上就是用戶認證。那麼 curl 要怎麼輸入用戶名和密碼呢?輸入命令 curl -x127.0.0.1:80 -ulys:Ilovexm/520@. 111.com -I,回車,見下圖,
這樣就進入了,格式爲 -u用戶名:密碼,狀態碼爲 200,就是正常狀態。若是輸錯密碼,就是下圖的狀態,
狀態碼又變成 401 了。apache
關於用戶認證還有另一個需求,vim
假設後臺訪問的地址是 admin.php ,就能夠針對 這個 admin.php 作訪問認證。這邊使用的是 FileMatch,意思爲匹配到 admin.php 的時候,纔會執行下面那些命令。如今就來改一下配置文件,輸入命令 vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf,回車,見下圖,
更改了上圖紅色框框的內容,保存並退出。從新加載配置文件,
而後還要編譯 123.php 文件,輸入命令 vim /data/wwwroot/111.com/123.php,回車,見下圖,
輸入上圖內容,保存並退出。echo 就是原文輸出的意思。接着作測試,輸入命令 !curl ,回車,見下圖,
一開始訪問 111.com 的密碼是錯的也能夠進入,說明不須要密碼就能夠訪問。接着訪問 123.php 的時候,就開始報錯 401,這是由於剛剛針對 123.php 作了用戶認證的限制。須要輸入用戶名和密碼,輸入命令 curl -x127.0.0.1:80 111.com/123.php -ulys:Ilovexm/520@. -I,回車,見下圖,
輸入用戶名和密碼以後,就能夠訪問了。瀏覽器
以上就是用戶認證,當有些內容不想讓別人訪問的時候,就須要加上用戶認證。安全