2021/11/16

Apache2でBasic認証ができなかったんです

結論: require valid-user の他に require ip xxx.xxx.xx.xx などの条件を設定して、それを満たしてしまうとパスワード認証されないっぽい


装置監視用に立てたapache2サーバーをチームに公開するため、Basic認証を導入してセキュリティを向上させようと思ったが、なぜかどうにもうまくいかん。
.htpasswdの設定も問題ない。パスも絶対に通っている。ブラウザはプライベートモードなのでキャッシュはキレイなままだ。sudo systemctl restart apache2 (ubuntu)もやっている。それなのに認証画面が出ずにそのままhtmlが表示される・・。
調べたお手本のなかで残された設定内容は AuthGroupFile /dev/null というものだったけど、これを追加してもだめだった。ただし、今回はサーバー起動時にエラーが出た。

https://askubuntu.com/questions/522519/htaccess-error-invalid-command-authgroupfile

エラー内容を調べてみると、sudo a2enmod authz_groupfile で設定に必要なモジュールアクティベートしてみなさいとのこと。これを実行した後リスタート後についに認証画面が出た。

で、この後設定をいろいろ変えながら原因を調べた結果、require valid-userrequire ip xxx.xxx.xx.xxといった具合にrequire設定を複数設定していたことと、それらが and 条件ではなく or 条件のように働いていたらしく、認証が必要にならなかったのが原因だったようだ。a2enmodを実行したこともうまくいった理由の一つだったのかもしれないが、今となってはもう分からん。

0 件のコメント: