Apache的认证、授权、访问控制

本文介绍如何使用Apache的htpasswd命令实现网站加密,包括配置httpd.conf文件、设置用户名及密码、重启服务等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录:
  一、为什么要对自己的网站进行加密?
  二、在apache主机下使用什么方式进行认证授权简单安全?
  三、如何对apache主机下进行认证、授权、访问控制?

一、为什么要对自己的网站进行加密?
  自己公司的内部资料出于安全的目的,只想允许部分经过授权的人进行访问。个人网站的重要文件放在Web上,如果允许任何人访问就没有任何安全性可言,因此很多人因各种原因想要加密自己的网站或者某个网页。

二、在apache主机下使用什么方式进行认证授权简单安全?
  对于 apache 主机来说最好用的办法就是用 htpasswd 命令的方法加密。可是网上许多关于apache认证、授权的文章 都写的很复杂,很强大以至于看不懂。有些还需要 ssh 来配合。对于我们来说,很多空间商不提供 ssh。

三、如何对apache主机下进行认证、授权、访问控制?
  下面我们来看如何在apache下面使用 htpasswd 进行访问授权控制

  1)编辑httpd.conf文件
  添加如下内容

# vi /usr/local/apache/conf/httpd.conf
<Directory "/usr/local/nagios/sbin">
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /usr/local/nagios/etc/.htpasswd
Require valid-user
</Directory>

  保存退出
说明:
  AuthType Basic  不用管它
  AuthUserFile     你将存放 .htpasswd 文件的路径,必须是服务器绝对路径
  AuthName     引号里的东西随便你写,就是弹出密码输入框时的提示文字
  Require      设置可以对被保护目录进行访问的用户。我们就写 valid-user,就是指在 .htpasswd 中的任何一位用户都可以访问。(其他的请自己搜索)

  上传 .htaccess 文件到你所需要保护的目录。如果 .htaccess 所在目录不是需要保护的目录,请添加 AuthGroupFile 项来指定受保护的目录(后面也是写服务器绝对路径)


  2)编辑 .htpasswd 文件,设置用户名为 admin 的口令

# /usr/bin/htpasswd  -cm /usr/local/nagios/etc/.htpasswd admin 
  New password:
  Re-type new password:
  Adding password for user admin

  注解:设置用户为 admin 并按提示输入两次相应密码

  3)重启 httpd 服务
  # /usr/local/apache/bin/apachectl –k restart
  或
  # service httpd restart

  4)验证口令是否生效
  在浏览器中输入:
  http://test.com/ 会提示要求输入用户名和密码才能访问

  5)关于.htaccess 文件的用法主要有以下几点
  改变目录的配置、添加 MIME 类型定义、允许或拒绝某些主机、设置用户和密码数据库、AuthUserFile、htpasswd 命令

   .htaccess 文件提供了针对每个目录改变配置的方法。只要你的主配置文件 httpd.conf 中<Directory "......">对应的 AllowOverride 设置不是 None,那么 Apache 在处理请求的时候就会在当前目录和所有上级目录中查找是否存在 .htaccess 文件,至于 AllowOverride 具体应该设置成什么,要依据你在 .htaccess 文件里写的语句而定。

  例子:
  如果你想使用 .htaccess 文件配置HTTP认证,则“AllowOverride AuthConfig”是必须的,然后在你的.htaccess文件里键入下列代码:

AuthType Basic
AuthName "Password Required"
AuthUserFile /path/to/password.file
AuthGroupFile /path/to/group.file
Require valid-user

  密码文件等等的创建有很多讲究,具体看 Apache 文档介绍。
  如果你想使用.htaccess文件配置SSI服务端包含,则“AllowOverride Options FileInfo”是必须的,然后在你的.htaccess文件里键入下列代码:

Options +Includes
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml

  注意:其中的“AddOutputFilter INCLUDES .shtml”是Apache2.0.X的写法,如果你的版本是Apache1.3.X的话,应该使用“AddHandler server-parsed .shtml”语法。
  提醒:
   1. Windows系统下不能正常的创建文件名为“.”开头的文件,你可以先随便创建一个,然后在命令行下用rename命令改名即可。如我创建的 (htpasswd.exe -cm F:/website/211.100.*.*/passwd.ht admin)
  2. 出于效率的考虑,尽可能使用AllowOverride None关闭.htaccess文件功能,相应的功能设置在httpd.conf文件里完成,当然,如果是虚拟主机的话,一般用户无法修改httpd.conf文件,那.htaccess就成了救命稻草。

-----------------------------------------------------------------------
相关文章:apache htpasswd 命令的用法
-----------------------------------------------------------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值