如何在 Apache 中进行摘要验证?

如何在 Apache 中进行摘要验证?

我有一个在 Ubuntu 上运行的 apache2 服务器。我是 Apache 新手,所以请原谅我说了一些不合逻辑的话。

我已经进行了基本身份验证,因此我认为我只需复制摘要式身份验证的指令,但我猜这就是我错的地方。

<Directory /home/mark/.www/secret>
    <Files file1>
      AuthType Basic
      AuthName "Secret"
      AuthUserFile "/etc/apache2/conf-available/.htpasswd"
      Require valid-user
    </Files>

    <Files file2>
        AuthType Digest
        AuthName "Secret"
        AuthUserFile "/etc/apache2/conf-available/.htpasswd"
        Require valid-user bob
    </Files>
</Directory>

在 /etc/apache2/mods-enabled 中,auth_basic.load 已经作为 /etc/apache2/mods-available 的符号链接存在

因此,我为 auth_digest 创建了一个符号链接。

但是,加载 file2 时仍然出现 401 错误(是的,我在进行更改时重新启动了服务器)。

file1 和 file2 都具有权限 644,并且就像我说的,file1 使用基本身份验证成功加载。

任何帮助,将不胜感激!

答案1

您对两种身份验证方法使用相同的密码文件,但它们需要不同格式的密码文件。

可以创建摘要方法的密码文件htdigest并包含领域名称。

cat .htpasswd.digest
sven:test:89bf07ca6d68de56df750411b4d41658

cat .htpasswd
sven:$apr1$is4DJFgn$SNilHKs4CqblmS0GsBiFu0

备注:我建议使用 Basic Auth 而不是 Digest,但是仅有的通过安全的 TLS 连接。

相关内容