はじめに
本記事ではWebサイトへのBasic認証設定を解説します。
Basic認証は事前に設定したIDとパスワードを入力することで認証する方法です。
取り急ぎとして設定する場面は多くありますが、あくまでも簡易的な機能であるため、勉強や検証環境以外の環境で使用する場合、別途セキュリティ対策はしっかり行いましょう。
少しでも皆さんの参考になれば幸いです。
前回、サブドメイン登録&SSL化設定手順についてまとめました。
本記事単体でも参考になるかと思いますが、【EC2 + Nginx】第2回 サブドメイン登録&SSL化設定も合わせてご覧ください。
こんな人に読んでほしい
- Webサイトやアプリケーションを閲覧する環境を作りたい
- EC2 + Nginxを使った環境を作りたい
- Basic認証を設定したい
- Nginxについて理解を深めたい
前提条件
- EC2インスタンス作成済みであること
- Nginxインストール済みであること
- SSH接続できること
解説内容
実施手順
- パッケージインストール
- SSH接続
- Linuxディストリビューションの確認
- パッケージインストール
- 認証ファイルの設定
- .htpasswdファイルの作成
- 生成ファイルの確認
- Nginx設定ファイルへの登録
- 動作確認
- 設定反映確認
- 再設定時・設定解除時の確認
パッケージインストール
.htpasswd
ファイルの利用に必要なパッケージをインストールしていきます。
.htpasswdファイルは、Apache Webサーバーにおいて、ユーザー名とパスワードを保管するためのファイルです。
SSH接続
まずはEC2へSSH接続していきます。
以下コマンドで接続しましょう。
ssh -i <キーペア名>.pem ec2-user@<パブリックIP>
Linuxディストリビューションの確認
環境によりインストールコマンドが異なるため、EC2環境のLinuxディストリビューションを確認します。
以下コマンドで確認しましょう。
cat /etc/os-release
例として以下のような結果が出力されます。
ID_LIKE
に記載の内容を確認するとfedora
と記載があるため、RedHat
系ディストリビューションであることがわかりました。
パッケージインストール
ここでは以下2パターンのインストールコマンドを記載します。
環境に応じてインストールコマンドが何かは調べてみてください。
RedHat系
sudo yum install httpd-tools
Debian系
sudo apt-get install apache2-utils
Complete!
が表示されればインストール成功です。
認証ファイルの設定
.htpasswdファイルの作成
それでは.htpasswd
ファイルを作成していきましょう。
今回は以下のように設定していきます。
- ユーザ名:
TestUser
- パスワード:
TestPass
次のコマンドを実行してください。
sudo htpasswd -c /etc/nginx/.htpasswd <ユーザ名>
パスワードが聞かれるので、二度入力してください。
New password: <パスワード入力>
Re-type new password: <確認用に再度パスワード入力>
Adding password for user <ユーザ名>
生成ファイルの確認
それでは生成された.htpasswd
ファイルを確認しましょう。
以下コマンドを実行して確認してください。
cat /etc/nginx/.htpasswd
Nginx設定ファイルへの登録
最後に作成した.htpasswd
ファイルをnginx.conf
に登録していきます。
次のコマンドでnginx.conf
を開きます。
sudo vi /etc/nginx/nginx.conf
そして以下の設定を追加し、上書きしてください。
設定内容はそれぞれ以下の通りです。
- location:Basic認証をかけたいエンドポイントURL
- auth_basic:認証名(任意の名称)
- auth_basic_user_file:.htpasswdファイルのフルパス
location / {
auth_basic "Basic Authentication";
auth_basic_user_file /etc/nginx/.htpasswd;
}
Nginxの再起動を忘れないようにしましょう。
sudo systemctl restart nginx
動作確認
設定反映確認
それでは設定が反映されているか確認します。
Webページhttps://<ドメイン>
へアクセスすると、ユーザ名とパスワードが求められます。
設定した内容を正しく入力すると、ページが閲覧できます。
これでBasic認証設定が完了しました。
再設定時・設定解除時の確認
一度Basic認証を突破するとページ更新しても再度ユーザ名とパスワードは求められません。
確認したい場合はURLホスト名の前にa@
をつけてページ更新してください。
https://<任意の文字列>@<ドメイン名>
まとめ
今回で3部すべて完結しました。
比較的簡単に構築できたのではないでしょうか。
Webサイトホスティングの環境やセキュリティ対策は、他にも様々な方法がありますので
皆さんの環境に合ったやり方を探してみてください。
ここまで読んでくださりありがとうございました!
ぜひこちらも併せてお読みください。