如何在Ubuntu/debian上配置Apache网页身份验证

时间:2020-02-23 14:32:39  来源:igfitidea点击:

如何在Ubuntu/Debian Web服务器上使用密码身份验证保护Apache网页?
如何使用基本身份验证来限制Apache上的特定网页的访问权限?
安装和配置Apache Web服务器后,我们可能需要为网页配置密码身份验证。
本教程将介绍如何使用基本身份验证设置密码受保护的目录。

通过运行下面的命令,可以在Ubuntu或者Debian Server/Workstation上安装Apache Web服务器。

sudo apt update
sudo apt -y install apache2

确认服务已启动。

$systemctl status  apache2
* apache2.service - The Apache HTTP Server
   Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
  Drop-In: /lib/systemd/system/apache2.service.d
           `-apache2-systemd.conf
   Active: active (running) since Fri 2019-06-21 12:21:47 PDT; 32s ago
 Main PID: 3797 (apache2)
    Tasks: 55 (limit: 1110)
   CGroup: /system.slice/apache2.service
           |-3797 /usr/sbin/apache2 -k start
           |-3799 /usr/sbin/apache2 -k start
           `-3800 /usr/sbin/apache2 -k start
Jun 21 12:21:47 ubuntu-01 systemd[1]: Starting The Apache HTTP Server...
Jun 21 12:21:47 ubuntu-01 apachectl[3771]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1
Jun 21 12:21:47 ubuntu-01 systemd[1]: Started The Apache HTTP Server.

应在服务器的IP地址/主机名上可见以下测试页面。

使用基本身份验证配置Apache密码受保护的目录。

安装Apache Web服务器后,安装基本身份验证包。

sudo apt -y install apache2-utils pwauth libapache2-mod-authnz-external

然后在/etc/apache2/sites可用目录下创建Apache配置文件。

sudo tee /etc/apache2/sites-available/secure-page.conf<<EOF
<Directory /var/www/html/secured>
    AuthType Basic
    AuthName "Basic Authentication"
    AuthUserFile /etc/apache2/.htpasswd
    require valid-user
</Directory>
EOF

将用户添加到基本身份验证文件。

$sudo htpasswd -c /etc/apache2/.htpasswd webuser1
New password: 
Re-type new password: 
Adding password for user webuser1

"-c"选项用于在初始设置期间创建文件。
要通过添加其他用户更新文件,请使用:

$sudo htpasswd /etc/apache2/.htpasswd webuser2
New password: 
Re-type new password: 
Adding password for user webuser2

具有用户的文件将具有:

$cat /etc/apache2/.htpasswd
webuser1:$apr1$nIxlKLgc$xGTv.J1x5wtbJqAfFPt6o1
webuser2:$apr1$F4OnyIyv$WImqRIR5BBopTMjqGXs/c1

现在启用安全。

$sudo a2ensite secure-page
Enabling site secure-page.
To activate the new configuration, you need to run:
  systemctl reload apache2

创建安全的目录。

sudo mkdir -p /var/www/html/secured

将内容添加到目录以进行测试。

sudo tee /var/www/html/secured/index.html<<EOF
<html>
<body>
<div style="width: 100%; font-size: 50px; font-weight: bold; text-align: center;">
My secure web page - Using Basic Auth
</div>
</body>
</html>
EOF

重新启动Apache服务。

sudo systemctl restart apache2

测试访问页面。

当询问用户名和密码时,使用前面配置的凭据进行身份验证。