密码保护我的网站

时间:2012-12-28 18:23:02

标签: apache amazon-ec2 webserver

我最近使用Amazon Linux AMI创建了一个新的Amazon EC2实例。在允许访问网站之前,强制用户访问域名以输入用户名/密码的最佳方法是什么?

我目前正在使用apache http服务器,并看到一些资源表明我需要使用.htaccess文件,但正在寻找更简洁的解释。

4 个答案:

答案 0 :(得分:28)

通过Htaccess密码保护网站

  1. 在待保护文件夹中创建一个带有以下内容的.htaccess文件:

    AuthType Basic
    AuthName "Password Protected Area"
    AuthUserFile /var/www/admin/.htpasswd
    Require valid-user
    
  2. .htpasswd之外的相同或最好是文件夹中创建/var/www文件。

    为了演示,我在上面使用了虚拟路径。 .htpasswd文件应包含您的密码salt 使用this generator创建.htpasswd文件。

  3. 假设您使用的是ubuntu,则必须通过此文件启用htaccess覆盖:/etc/apache2/sites-available/default

    将“AllowOverride None”更改为“AllowOverride All”:

    <Directory /var/www/>
       Options Indexes FollowSymLinks MultiViews
       AllowOverride None
       Order allow,deny
       allow from all
    </Directory>
    
  4. 注意:您可能需要通过命令行编辑ssh:sudo nano /etc/apache2/sites-available/default

    1. sudo /etc/init.d/apache2 reload

答案 1 :(得分:4)

如果您要查找的只是服务器级访问控制(即不对您的应用程序进行任何修改),则可以使用基本身份验证。这是在Apache Web服务器级别实现的,如果需要,可以使用.htaccess文件在逐个目录的基础上进行控制。

以下是Apache文档的链接

http://httpd.apache.org/docs/2.2/howto/auth.html

以下是如何实施

的简单示例

http://doc.norang.ca/apache-basic-auth.html

答案 2 :(得分:1)

您需要生成密码用户名+密码字符串以进行身份​​验证,并将其写入文件。

  • 您可以使用HTTP password generator tool执行此操作。
  • 将获取的字符串复制粘贴到Webroot外部任何位置的新文件(.htpasswd)(最好保留在用户主目录中的任何位置)。
  • 在.htaccess文件中添加以下行。
AuthType Basic
AuthName "Require Authentication"
AuthUserFile [PATH_TO_FILE]/.htpasswd
Require valid-user
  • 如果密码未触发,请检查.htaccess文件的权限。

  • 如果验证失败,请检查指定位置是否存在.htpasswd文件。 (确保您的用户帐户具有足够的.htpasswd文件权限才能阅读)

  • 您无需重启服务器即可实现此目的。

希望这有帮助。

答案 3 :(得分:0)

编写加密密码并添加到.htpasswd文件

$ htpasswd -nbm username Password

.htaccess文件条目

AuthType Basic
AuthName "My Protected Area"
AuthUserFile /absolute/path/to/password/file
Require valid-user

For more details go through this blog post - iCodefy