Apache设置页面认证(原创贴-转载请注明出处)
================写在前面的话==============
1.本试验使用的apache版本是2.4.24
场景描述:网站后台管理页面比较重要,不应该任何人都让访问,所以对后台页面做认证就显得非常有必要。
=================现在开干==============
思路:使用.htpasswd工具生成加密文件>在apache里面进行配置
1:使用htpasswd工具生成加密文件
htpasswd说明:htpasswd是apache自带的用户和密码加密文件生成工具,如果没有该工具也可百度搜索在线生成htpasswd文件的网站。如果apache是通过RPM的方式安装的话,该命令存放在/usr/bin/目录下,如果apache是源码方式安装的话,该命令存放在apache安装目录的bin目录下。
①使用htpasswd工具生成一个位于/usr/local/apache/conf目录下名为.htpasswd的文件,该文件中包含用户名为renzheng,密码为renzheng123的用户。
/usr/local/apache/bin/htpasswd -cbm /usr/local/apache/conf/.htpasswd renzheng renzheng123
htpasswd命令选项介绍:
-c 创建一个加密文件 -n 不更新加密文件,只将apache htpasswd命令加密后的用户名密码显示在屏幕上 -m 默认apache htpassswd命令采用MD5算法对密码进行加密 -d apache htpassswd命令采用CRYPT算法对密码进行加密 -p apache htpassswd命令不对密码进行进行加密,即明文密码 -s apache htpassswd命令采用SHA算法对密码进行加密 -b 在apache htpassswd命令行中一并输入用户名和密码而不是根据提示输入密码 -D 删除指定的用户
②查看.htpasswd文件是否生成并包含用户名为renzheng且密码经过加密的内容。
cat /usr/local/apache/conf/.htpaawd
2.在Apache中进行配置
①:编辑虚拟主机配置文件
vim /usr/local/apache/conf/extra/httpd-vhosts.conf
②:在该文件中我们在<VirtualHost *:80></VirtualHost>标签中插入如下内容
<locationmatch "/renzheng.php"> AuthType Basic AuthName "Please Insed Password" AuthUserFile "/usr/local/apache/conf/.htpasswd" Require valid-user </locationmatch>
说明:Require valid-user这个选项是所有.htpasswd文件中的用户都能够用来进行认证,如果不想所有用户指向指定个别用户,可以用命令 Require user 用户1 用户2 用户3
如下是我自己的配置文件内容,可做参考:
#针对页面做认证 <locationmatch "/renzheng.php"> AuthType Basic AuthName "Please Input Your Password" AuthUserFile "/usr/local/apache/conf/.htpasswd" Require valid-user </locationmatch>