不接受 Apache2 访问网站的身份验证

问题描述 投票:0回答:1

我使用 Apache2 通过身份验证登录对话在我的站点和用户之间进行干预。我已将哈希密码添加到 Apache2 .htaccess 文件中。该站点有一个注册的子域,并且 Web 服务器有一组 SSL 证书和密钥。但是,当用户尝试访问该站点并显示“用户名和密码”框时,用户名和密码将不被接受。我希望得到一些帮助。

我使用以下方法创建用于站点身份验证的用户名和密码:

sudo htpasswd -c /etc/apache2.htpasswd

我可以在该文件中看到密码的哈希版本。

然后,这些是我的 Apache2 服务器配置文件:

/etc/apache2/sites-available/my-site.conf

<IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerName my-site.com
    ServerAlias subdomain.my-site.com
    DocumentRoot /var/www/my-site/public_html


    <Directory /var/www/my-site/public_html>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    <Location "/">
        AuthType Digest
        AuthName "Restricted Area"
        AuthDigestDomain /
        AuthDigestProvider file
        AuthUserFile /etc/apache2/.htpasswd
        Require valid-user
    </Location>


SSLCertificateFile /etc/letsencrypt/live/subdomain.my-site.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/subdomain.my-site.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>

以及主要的 apache 配置文件 /etc/apache2/apache.conf

DefaultRuntimeDir ${APACHE_RUN_DIR}
PidFile ${APACHE_PID_FILE}
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
HostnameLookups Off
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf
Include ports.conf
<Directory />
        Options FollowSymLinks
        AllowOverride None
        Require all denied
</Directory>

<Directory /usr/share>
        AllowOverride None
        Require all granted
</Directory>

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

<Directory /usr/share>
        AllowOverride None
        Require all granted
</Directory>

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

AccessFileName .htaccess
<FilesMatch "^\.ht">
        Require all denied
</FilesMatch>

LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %O" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent

IncludeOptional conf-enabled/*.conf

IncludeOptional sites-enabled/*.conf

Include /etc/apache2/httpd.conf

我的 /etc/apache/httpd.conf 文件是空的。

我已经清除了缓存,使用了私人浏览器,也让其他人尝试过,但最终我设置的密码和用户名不起作用。

请告诉我是否缺少数据以供您帮助。我很高兴编辑问题。谢谢

apache authentication
1个回答
0
投票

密码文件的文件名不一致(htpasswd 命令缺少

/
)。

htpasswd 命令:

sudo htpasswd -c /etc/apache2.htpasswd

我的站点.conf:

AuthUserFile /etc/apache2/.htpasswd

第一个命令创建一个文件

/etc/apache2.htpasswd
配置需要该文件
/etc/apache2/.htpasswd
(额外
/

© www.soinside.com 2019 - 2024. All rights reserved.