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>

 

posted @ 2016-11-10 10:14  一王小可一  阅读(400)  评论(0编辑  收藏  举报