目录:
一、为什么要对自己的网站进行加密?
二、在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 命令的用法
-----------------------------------------------------------------------