http-auth 不应用 username/password 到 route53 地址

http-auth does not apply username/password to route53 address

我已经为 ubuntu 网络服务器 运行 apache2 设置了 http-auth。我通过以下步骤完成了此操作(请注意该实例已经有 apache2 运行 和 route53 dns 地址的 A 记录):

mkdir -p /etc/httpd/conf.d
apt-get install -y apache2-utils
htpasswd -b -c /etc/apache2/.htpasswd demo $PASSWORD

然后我创建了文件 /etc/apache2/sites-enabled/000-default.conf

<VirtualHost *:80>
  DocumentRoot /var/www/blah/
  ServerName some-test.blah.info
  ServerAdmin some-random-admin
  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined

  <Directory "/var/www/blah/">
      AuthType Basic
      AuthName "Restricted Content"
      AuthUserFile /etc/apache2/.htpasswd
      Require valid-user
  </Directory>
</VirtualHost>

最后我通过重新启动 apache 来应用此更改。

在此之后,会通过 IP 地址而不是通过 route53 设置的 dns 地址提示凭据(输入用户名和密码)。

我认为问题是 route53 问题,因为当您直接执行 IP 地址时它工作正常。

解决方案是编辑 /etc/apache2/apache2.conf 并找到目录部分(应该是第 153 到 174 行)并添加身份验证要求。所以基本上找到所有目录并在每个目录中添加这四行:

        AuthType Basic
        AuthName "Restricted Content"
        AuthUserFile /etc/apache2/.htpasswd
        Require valid-user

例如,这是它最初的样子:

<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 />
        Options FollowSymLinks
        AllowOverride None
        AuthType Basic
        AuthName "Restricted Content"
        AuthUserFile /etc/apache2/.htpasswd
        Require valid-user
</Directory>

<Directory /usr/share>
        AllowOverride None
        AuthType Basic
        AuthName "Restricted Content"
        AuthUserFile /etc/apache2/.htpasswd
        Require valid-user
</Directory>

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        AuthType Basic
        AuthName "Restricted Content"
        AuthUserFile /etc/apache2/.htpasswd
        Require valid-user
</Directory>

<Directory "/var/www/blah/">
        AuthType Basic
        AuthName "Restricted Content"
        AuthUserFile /etc/apache2/.htpasswd
        Require valid-user
</Directory>