15%

Alexhost 满足您的愿望

参与调查 并赢得奖品

09.10.2024
No categories

如何在Ubuntu中设置Apache htpasswd身份验证

使用 Apache htpasswd 在 AlexHost Ubuntu VPS 上锁定您的网站

为什么使用 htpasswd? Apache 的 htpasswd 是您快速保护网络目录的捷径——想想管理面板或开发网站——通过简单的用户名/密码门禁。它轻量级,适合基本访问控制,并且在运行 Apache 的 AlexHost Ubuntu VPS 上设置非常简单。本指南将指导您为您的网站添加锁和钥匙的感觉,确保敏感区域安全而不费吹灰之力。

先决条件

  • 运行 Ubuntu 的服务器,并安装了 Apache2。
  • 对服务器具有 root 或 sudo 访问权限。
  • 基本的命令行使用知识。

步骤 1:安装 Apache(如果尚未安装)

如果您的 Ubuntu 服务器上未安装 Apache,可以使用以下命令安装它:

sudo apt update

sudo apt install apache2

步骤 2:激活 htpasswd 工具

htpasswd 工具由 apache2-utils 包提供,该包通常与 Apache 一起安装。如果未安装,您可以通过运行以下命令来安装它:

sudo apt install apache2-utils

此命令安装 htpasswd 身份验证文件所需的密码管理工具。

步骤 3:创建 .htpasswd 文件

.htpasswd 文件用于存储用户名和加密的身份验证密码。

  1. 要创建一个新的 .htpasswd 文件并添加用户,请运行以下命令:
    sudo htpasswd -c /etc/apache2/.htpasswd your_username

    将 your_username 替换为您想要创建的用户名。

    • -c 选项创建一个新的 .htpasswd 文件 . 如果文件已经存在并且您使用 -c,则会被覆盖,因此仅在首次创建文件时使用它。
  2. 输入并确认密码:运行命令后,系统将提示您输入并确认用户的密码。将创建一个 /etc/apache2/.htpasswd 文件,其中包含您的用户名的加密密码。
  3. 添加其他用户(可选):要添加更多用户而不覆盖现有的 .htpasswd 文件,请执行:
    sudo htpasswd /etc/apache2/.htpasswd another_username

    将 another_username 替换为新用户名。此命令将新用户添加到现有的 .htpasswd 文件中。

步骤 4:配置 Apache 进行密码保护

您需要指定要进行密码保护的目录或位置。这可以通过使用 .htaccess 文件或直接编辑 Apache 配置文件来完成。

选项 1:使用 .htaccess 文件

  1. 启用 .htaccess 文件:如果您想使用 .htaccess 文件来设置密码保护,请确保要保护的目录的 AllowOverride 指令设置为 All。编辑适当的 Apache 配置文件(例如,/etc/apache2/sites-available/000-default.conf):
    sudo nano /etc/apache2/sites-available/000-default.conf

    找到您的网站根目录部分(例如 /var/www/html),并将 AllowOverride 设置为 All:

    <Directory /var/www/html>
    AllowOverride All
    </Directory>
  2. 重启 Apache:编辑配置后,重启 Apache 以应用更改:
    sudo systemctl restart apache2
  3. 创建 .htaccess 文件:在您要保护的目录内(例如 /var/www/html),创建或编辑一个 .htaccess 文件:
    sudo nano /var/www/html/.htaccess
  4. 添加以下指令:将以下行添加到 .htaccess 文件中:
    AuthType Basic
    AuthName “受限内容”
    AuthUserFile /etc/apache2/.htpasswd
    Require valid-user
    • AuthType Basic:指定基本身份验证。
    • AuthName:将在身份验证消息中显示的消息。
    • AuthUserFile:指向您的 .htpasswd 文件的路径。
    • Require Valid User:限制对 .htpasswd 文件中列出的用户的访问。
  5. 保存并关闭文件。

选项 2:直接使用 Apache 配置文件

如果您更喜欢直接在 Apache 配置文件中管理身份验证,而不是使用 .htaccess,请按照以下步骤操作:

  1. 编辑虚拟主机配置:打开您要保护的网站的 Apache 配置文件(例如,/etc/apache2/sites-available/000-default.conf):
    sudo nano /etc/apache2/sites-available/000-default.conf
  2. 添加身份验证指令:在对应于您要保护的目录的块内或块中,添加以下内容:
    <Directory "/var/www/html">
    AuthType Basic
    AuthName "Restricted Content"
    AuthUserFile /etc/apache2/.htpasswd
    Require valid-user
    </Directory>
  3. 保存并关闭配置文件。
  4. 重启 Apache:更改后,重启 Apache:
    sudo systemctl restart apache2

步骤 5:测试身份验证

现在使用您的网络浏览器访问安全目录的 URL(例如 http://your_server_ip_or_domain)。您应该会看到一个登录提示,要求输入用户名和密码。

  • 输入您使用 htpasswd 命令创建的用户名和密码。
  • 如果凭据正确,您将获得对该目录的访问权限;否则,您将被拒绝访问。

步骤 6:保护 .htpasswd 文件

出于安全原因,请确保 .htpasswd 文件存储在网络根目录之外(例如,/etc/apache2/.htpasswd),以便无法被网络浏览器直接访问。

确保 .htpasswd 文件具有正确的权限:

sudo chmod 640 /etc/apache2/.htpasswd

sudo chown www-data:www-data /etc/apache2/.htpasswd

这确保只有 Apache 用户(www-data)和 root 具有对 .htpasswd 文件的读取权限。

结论:轻松保护您的网站

Apache htpasswd 是您在 AlexHost Ubuntu VPS 上锁定网络目录的快速解决方案。安装工具,创建

.htpasswd
,配置
.htaccess
或 Apache,并进行测试——轰,私人区域准备就绪。保护该文件,添加 SSL 以确保安全,您就大功告成了。需要帮助吗?AlexHost 的支持随时为您服务。锁定它,继续编码!

15%

Alexhost 满足您的愿望

参与调查 并赢得奖品

Похожие записи не найдены.