まえがき
Basic認証かけるのは意外と簡単!!
前提
Linux上でmod_wsgiつかって動かしてるPython Webアプリケーションであること
今回のケースではEC2上でApache HTTPを動かしている。
1. htpasswdツールをインストール
1-a.そもそもhttpd-toolsが入ってるか確認
rpm -q httpd-tools
・入っていない場合: 以下のような文言を吐く
package httpd-tools is not installed
・入っている場合: 以下のような文言を吐く
httpd-tools-2.4.59-2.amzn2023.x86_64
1-b.入ってなかったらインストール
sudo yum install httpd-tools -y
2. idとパスワードを設定
sudo htpasswd -c /etc/httpd/.htpasswd 任意のid
パスワード入力を求められるので入力
3. WSGI DaemonProcessファイルを編集
/etc/httpd/conf.d/とかに入ってるはず。
たぶんapp.confとかssl.confとか。
どこにあるか忘れちゃったら以下のコマンドで探そう
sudo httpd -S
以下文言を記述する。
Requrireに valid-user以外が入ってないか要確認!
ぼくはRequire all granted の記述を入れっぱなしにしていて
Basic認証がかからない!と慌てた記憶がある。
<Directory "プロジェクトルートディレクトリのパス">
AuthType Basic
AuthName "Restricted Access"
AuthUserFile /etc/httpd/.htpasswd
Require valid-user
</Directory>
confファイルに問題ないかテスト
sudo apachectl configtest
問題がなければサーバーを再起動
sudo systemctl restart httpd
完成!
自分のサイトを確認してみよう。
Basic認証がかかってるはず!