使用Apache密码保护目录

2020年12月31日19:39:57 发表评论 48 次浏览

了解如何使用Apache的基本HTTP身份验证对目录进行密码保护。通过这种方法, 你可以在网站的受限区域中设置访问权限, 该区域需要用户名和密码。

要求

  • 运行Linux(CentOS 7或Ubuntu 16.04)的云服务器。
  • Apache Web服务器已安装并正在运行。

有关设置Apache网站的更多信息, 请参阅我们关于该主题的文章.

创建密码文件

第一步是创建一个密码文件, Apache将使用该文件来检查用户名和密码。该文件将被命名.htpasswd并放在安全的位置:/ etc / apache2在Ubuntu 16.04上, 以及/ etc / httpd在CentOS 7上。

的htpasswd命令可用于创建密码文件或向其添加条目。第一次, 我们将使用-c标志以创建文件并添加用户名do:

  • CentOS 7:须藤htpasswd -c /etc/httpd/.htpasswd jdoe
  • Ubuntu 16.04:须藤htpasswd -c /etc/apache2/.htpasswd jdoe

系统将提示你输入并确认用户的新密码。

将新用户添加到现有文件

要将新用户添加到现有密码文件中, 请使用相同的命令而不使用-c旗。例如, 添加一个用户珍妮多命令是:

  • CentOS 7:须藤htpasswd /etc/httpd/.htpasswd janedoe
  • Ubuntu 16.04:须藤htpasswd /etc/apache2/.htpasswd janedoe

系统将提示你输入并确认用户的新密码。

启用目录限制

在限制目录之前, 你需要配置Apache以允许.htaccess文件。

CentOS的7

使用以下命令打开主Apache配置文件进行编辑:

sudo nano /etc/httpd/conf/httpd.conf

向下滚动到<目录>的部分" / var / www / html"并改变AllowOverrideto所有.

保存并退出文件。然后重新启动Apache以使更改生效:

sudo systemctl restart httpd

Ubuntu 16.04

使用以下命令打开主Apache配置文件进行编辑:

sudo nano /etc/apache2/apache2.conf

向下滚动到<目录>的部分" / var / www"并改变AllowOverrideto所有.

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

保存并退出文件。然后重新启动Apache以使更改生效:

sudo systemctl restart apache2

创建禁区

转到你要保护的目录。例如:

cd /var/www/html/admin

创建一个名为.htaccess并打开进行编辑:

sudo nano .htaccess

将以下内容放入此文件:

CentOS 7:

AuthType Basic
AuthName "Password Required"
Require valid-user
AuthUserFile /etc/httpd/.htpasswd

Ubuntu 16.04:

AuthType Basic
AuthName "Password Required"
Require valid-user
AuthUserFile /etc/apache2/.htpasswd

测试身份验证

要测试身份验证, 请在浏览器中访问受密码保护的URL。你将看到一个弹出窗口, 提示你输入用户名和密码以继续。

注意:如果你的浏览器具有弹出窗口阻止程序, 则需要对其进行配置以允许该域的弹出窗口。

一盏木

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: