如何在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
测试访问页面。
当询问用户名和密码时,使用前面配置的凭据进行身份验证。