環境
Amazon Linux 2
Apache2.4
やり方
httpd.conf等のconfigファイルに次の文を付け加える。
<Directory "{Basic認証をかけたいディレクトリの絶対パス}"> Options All -Indexes AllowOverride All AuthUserFile {htpasswdの絶対パス} AuthName "Please enter your ID and password" AuthType Basic Require valid-user </Directory>
次に、IDとパスワードを書き込むファイルを用意する。 この時、var/www/htmlなどの実際にアクセスするディレクトリは避ける。 例えば、/etc/httpd/basicを作る等する。
そこにhtpasswdというファイルを作成し、(実際にはAuthUserFileに書いてあれば名前はなんでも良い)IDとパスワードを記述する。
このとき、パスワードは暗号化しなければならないので、こちら のツールで生成し、そのまま貼り付ける。
注意点
CDNでは使えない。
筆者はCloudFrontを利用していたため、いつまでもできず、時間を費やした。 CDNでは直接サーバーを介さないので、いつまでたってもできるわけなかった。 Hosts書き換えを行うことで、検証できた。
実際は各CDNの設定などでBasic認証を使えることはあるらしいが、今回の方法では使うことができない。