目標
ApacheのルートディレクトリでBasic認証を行う
つまづいたポイント
httpd.confの<Directory "/var/www/html"></Directory>
に下記記述を追加しても、Basic認証が行われなかった。
AuthType Basic AuthName "test user" AuthUserfile /etc/httpd/htpasswd Require valid-user
解決方法
Apacheインストール後初めからhttpd.confの<Directory "/var/www/html"></Directory>
内に、Require all granted
が記述されていました。
Require all granted
だと全アクセス許可となるので、Basic認証を行わずWEBページが表示されてしまいます。
Require all granted
をRequire valid-user
に変更する事で、Basic認証を通ったユーザーのみアクセス許可となり解決しました。
1.Basic認証
1.ユーザ作成
-c
をつける事で新規パスワードファイルを作成します。
htpasswd -c /etc/httpd/htpasswd test1
2.vi /etc/httpd/conf/httpd.conf
で設定ファイルに下記記述を追加する。
# Basic認証を指定 AuthType Basic # 認証領域を指定 AuthName "test user" # パスワードファイルを指定 AuthUserfile /etc/httpd/htpasswd
この時点ではRequire all granted
となっている為、Basic認証が行われません。
3.vi /etc/httpd/conf/httpd.conf
で設定ファイルの下記記述を変更する。
Require all granted ↓ Require valid-user
4.Apache再起動
systemctl restart httpd
まとめ
今回はBasic認証のハンズオンについて書かさせていただきました。
初歩的なつまづきでしたが、初学者の方達の参考にしてもらえればと思います。
Basic認証は簡単にアクセス制限をかける事が可能です。
しかしセキュリティレベルが高いとは言えませんので、ご使用の際はお気をつけください。
最後までご覧いただきまして、誠に有難うございました。