我有一个在 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 连接。