1. 導入:この記事でできるようになること
こんにちは、今回も一歩ずつやっていきましょう🦊
この記事では、VPSで公開しているアプリやページに「誰でもアクセスできないようにする最低限の認証の仕組み」を作ります。
nginxで Basic認証 をつけて簡単なIDとパスワードでロックする
必要なら IP制限 を追加して、特定の人だけアクセスできるようにする
複数人で安全にURLを共有する基本がわかる
💡 なぜこれが必要?
誰でもアクセスできる状態だと 内部用ツールが丸見え になるリスクがある
最低限の鍵をかけるだけでも、外部からの無駄なアクセスを減らせる
Slackや管理画面など、身内だけが使う場所には認証が必須!
2. 背景・基礎知識
🔐 認証ってどういうこと?
インターネット上にある「部屋のドアに鍵をつける」イメージです。
🔓 認証なし → 誰でも自由に入れる空き家状態
🔑 認証あり → 鍵(IDとパスワード)を知っている人だけが入れる
📑 nginxのBasic認証とは?
nginxの Basic認証 は、一番簡単に導入できるIDパス管理です。
ユーザー名とパスワードをセットで作る
.htpasswd というファイルに保存する
nginxの設定で「このパスには鍵をつける」と指定する
🔒 IP制限って?
会社の固定IP や 自宅のIP を指定して、それ以外のアクセスをブロックする方法
IDパスだけより一段階セキュリティが上がる
VPNなどと組み合わせると、社内専用ページに最適
3. 実践パート
✅ ステップ1|必要ツールを入れる
sudo apt update sudo apt install apache2-utils
✅ ステップ2|パスワードファイルを作る
admin というユーザーで例:
sudo htpasswd -c /etc/nginx/.htpasswd admin
(2人目以降は -c を外す)
✅ ステップ3|nginxの設定に認証を追加
例: /admin ディレクトリにBasic認証をつける
location /admin/ {
auth_basic "Admin Only";
auth_basic_user_file /etc/nginx/.htpasswd;
proxy_pass http://localhost:8000; # Flaskなど管理画面の裏
}
✅ ステップ4|IP制限を追加する例
location /admin/ {
allow 123.45.67.89; # 許可するIP
deny all;
auth_basic "Admin Only";
auth_basic_user_file /etc/nginx/.htpasswd;
proxy_pass http://localhost:8000;
}
✅ ステップ5|設定を反映
sudo nginx -t
sudo systemctl reload nginx
4. つまずきポイントと対処法(FAQ)

5. まとめと次回予告
✅ 今回は、VPSのURLに鍵をかける方法(Basic認証+IP制限)を学びました。
これで、管理画面やSlack連携のWebhookエンドポイントなども安全に使えます。
🔜 次回は、認証を発展させてログイン画面付きの簡易認証やOAuth連携の基礎 を紹介予定です!
ゆっくりでOK、一緒にステップアップしましょう🦊
#VPS #Basic認証 #nginx #IP制限