ページを公開する時に、特定の人にしか公開させたくない場合があります。
今回はユーザ名とパスワードによる認証を設定し、特定の人しかページを見れないようにします。
このように、ユーザ名とパスワードによる認証をベーシック認証と言います。
今回はベーシック認証で利用するユーザ名とパスワードを管理するファイルを作成します。
今回の環境は以下になります。 Amazon Linux2 docker コンテナにて Apache2.4 を使用します。
htpasswdコマンド
htpasswdコマンドを使用します。しかし、自分の環境には存在しませんでした。
・コマンド
htpassword
・結果
htpassword: command not found
htpasswdを探します。
・コマンド
find / -name 'htpasswd'
・結果
/usr/bin/htpasswd
htpasswdへのパスが通っていないだけのようでした。今回はパスを通さずhtpasswdを使用します。
ベーシック認証ファイルの配置場所作成
ベーシック認証ファイルの配置場所を作成します。
今回は /httpd-basic-auth というディレクトリを作成します。
ベーシック認証のファイルはセキュリティを考慮するとドキュメントルートの様な公開されたディレクトリには配置しない方が良いでしょう。
・コマンド
mkdir /httpd-basic-auth
認証ユーザの作成
今回は dennie と言うユーザを作成します。
/httpd-basic-auth ディレクトリ以下に passwords と言うファイルを作成します。
コマンド実行後、任意のパスワードをキー入力して下さい。
・コマンド
./usr/bin/htpasswd -c /httpd-basic-auth/passwords dennie
認証ファイルの確認
認証ユーザが作成されると、認証ファイルに作成したユーザ名とMD5でハッシュ化されたパスワードが作成されます。
ハッシュアルゴリズムはユーザ作成時に指定できる様ですが、デフォルトではMD5が使用されるようです。
cat /httpd-basic-auth/passwords
dennie:$apr1$8zyLuDWA$bSwtcMwdvS2z7fVbAFAfi/
最後に
次回は実際にベーシック認証を設定してみます。