初めてのApacheでBasic認証
2025-12-03
azblob://2025/11/27/eyecatch/2025-11-27-how-to-setup-apache-basic-auth-000.jpg

こんにちは!

今回、業務で初めてApacheのBasic認証を設定したのでその内容についてまとめていきたいと思います!

初心者向けに「難しい単語は全部置いてけぼりにしない」をモットーに、“あっ、これならできるかも”と思える内容でまとめていきますので、最後までお付き合いください!

大前提

そもそもApacheってなに?

「Apache(アパッチ)」は、
世界で最も有名な Web サーバーソフトウェアのひとつです。

Web サーバー? 何それ?と思ったあなた。
めちゃくちゃ簡単に言うと…

【あなたがブラウザで見る“あのページ”を、こっそり裏で届けてくれている配達員】

みたいな存在です。

そもそもBasic認証ってなに?

例えるなら、「お店の裏口に鍵を取り付けるようなもの」。

  • そのページを見せたい人だけに見せたい
  • 社内用のツールだから外の人には見せたくない
  • とにかくちょっと隠しておきたい

こんなときに、サクッとつけられる簡単な認証機能です。
ブラウザで開くと、こんな感じの“ユーザー名とパスワード入力ボックス”が出てきます。
「高級感はないけど、ちゃんと鍵は閉まる」という手軽なセキュリティです。

ちなみにApacheにはBasic認証が搭載されているので認証機能をオンにするだけでいい!

つまり、「ApacheでBasic認証」とは…

Apacheに搭載されている認証機能をオンにして、特定のページに“鍵(パスワード)”をかけられるようにすること

ApacheでBasic認証を設定する具体的なフロー

〜3ステップで“ページに鍵をつける”〜

ここからは、いよいよ実践編。
Apache に「このページは鍵付きですよ!」と教えてあげるフローを、
できるだけ丁寧に解説していきます!

やることはたったの 3つだけ

  1. パスワードファイルを作る
  2. Apache の設定を書く
  3. Apache を再起動する

これだけです!

では早速進めるために、ターミナルを開きましょう!

STEP1:パスワードファイルを作る

まずは、認証の“本体”となる パスワードファイル を作ります。
これは「誰が入っていいのか」を Apache に伝えるための名簿になります。

sudo htpasswd -c /etc/httpd/htpasswd ユーザー名

【コマンド解説】

  • sudo
    → 管理者権限で実行するためのもの
  • htpasswd
    → パスワードファイルを作成するコマンド
  • -c
    → 新規作成(create の c)。
    ※ 初回だけ付ける!
  • /etc/httpd/htpasswd
    → パスワードファイルの保存先
    (Web から見えないディレクトリを指定することが大事)
  • ユーザー名
    → 認証に使うID
    例:admintaro など

コマンドを実行すると、次のような流れで進みます。

  1. パスワードの入力を求められる
  2. 再度確認の入力
  3. パスワードファイルが作成される

これで ユーザー1人分の認証情報が完成!

以下のコマンドを実行して名簿を確認してみましょう。(任意)

cat .htpasswd
たくさん登録されているとこんなかんじで表示されます!まさに名簿です。
admin:$apr1$8K3r1....$aBcdEfGhijkLmNoPqRstU0
taro:$apr1$Zy12Xy3H$3p9b0fWcG9R9L3f4bLqkS1
hana:$apr1$Lk9Tr2Xr$91a2b3c4d5e6f7g8h9i0j1

ちなみにこの状態だと、誰でもこの名簿を見ることができてしまいます。(パスワードも)
セキュリティの観点からも名簿へのアクセス権を変更する必要があります。

sudo chown apache:apache /etc/httpd/htpasswd
sudo chmod 600 /etc/httpd/htpasswd

【コマンド解説】
  • sudo
    → 管理者権限で実行するためのもの
  • chown
    → ファイルの所有者(user)とグループ(group)を変更するコマンド
  • apache:apache
    → 所有者ユーザー=apache
    → 所有者グループ=apache
    ※ Apache がこのファイルを読み取れるように設定するため
  • /etc/httpd/htpasswd
    → 所有者を変更したい対象のパスワードファイル
    (Web から見えないディレクトリに置くのが大事)
  • 600
    → 所有者だけが読み書きできる設定
    → 他のユーザー・グループは一切アクセス不可になるので安全

この設定にすることで、パスワードファイルはApache(認証処理をする本人)だけが読めるようになります。

結果として、他人に盗み見られるリスクが激減します。

これだけでSTEP1は完了です!

STEP2:Apache の設定を書く

STEP1 で “鍵のデータ(.htpasswd)” を作り、安全に保護するところまで終わりました。

次はいよいよ、「どのフォルダに鍵を取り付けるか」を Apache に教える設定を行います。

やることはただひとつ。

「Apache の設定ファイルにBasic認証のルールを書き込むだけ!」

ということで設定ファイルを開きましょう。

sudo nano /etc/httpd/conf/httpd.conf

【コマンド解説】

  • sudo
    → 管理者権限で実行するためのもの
    → Apache の設定ファイルは通常ユーザーでは編集できないため必須
  • nano
    → ファイルを編集するためのテキストエディタ(ターミナルの中でファイルを編集できる “メモ帳” みたいなもの。)
    → Ctrlキーで操作できる初心者向け簡易エディタ
  • /etc/httpd/conf/httpd.conf
    → Apache のメイン設定ファイル
    → Directory 設定を追加することで
      「どのフォルダを Basic認証で守るか」が決まるファイル

nanoの画面で以下のタグを追加します。

<Directory "/var/www/html">​
AuthType Basic​
AuthName "auth"​
AuthUserFile /etc/httpd/htpasswd​
Require valid-user​
</Directory>

【コマンド解説】

  • <Directory "/var/www/html">
    → 「このフォルダを守りますよ」という宣言
    /var/www/html は Apache が公開する標準のフォルダ(DocumentRoot)
  • AuthType Basic
    → Basic認証を使うよ、という設定
  • AuthName "auth"
    → 認証画面に表示される名前(自由に変えてOK)
  • AuthUserFile /etc/httpd/htpasswd
    → STEP1で作った “パスワードファイル” の場所
    → Apache がこのファイルを見て、正しいユーザーか確認する
  • Require valid-user
    → パスワードファイルに登録されているユーザーなら誰でも入れる
  • </Directory>
    → この設定の終わり

書き終わったら、

  1. Ctrl + O で保存
  2. Enter で確定
  3. Ctrl + X で nano を終了

STEP3:Apacheを再起動する

最後にApacheを再起動したら終わりです!

sudo systemctl reload httpd.service

そうしたら認証が正常に機能しているか、ブラウザで確認しましょう!

  1. 保護したディレクトリにアクセス
  2. 「ユーザー名とパスワードを入力するウィンドウ」が出る
  3. STEP1 で作ったユーザー/パスワードを入力
  4. 正しく入れる → フォルダ内が表示される
  5. 間違える → 401 Unauthorized(認証エラー)が出る

これが確認できれば成功です!!

最後のまとめ

今回は、

  1. パスワードファイル(.htpasswd)を作る
  2. Apache の設定ファイルに Basic認証の設定を書く
  3. Apache を reload して設定を反映させる

という 3 ステップで、「ApacheでBasic認証を設定するところ」まで一通りやってみました。

実際に手を動かしてみると、

  • 黒い画面(ターミナル)でコマンドを打ってみたり
  • nano で設定ファイルを編集してみたり
  • <Directory> ブロックの意味をひとつずつ理解したり

と、「なんか難しそう…」と思っていた作業が、
“あれ?意外とシンプルかも?” に変わったんじゃないかなと思います。

もし余裕が出てきたら、

  • 特定のディレクトリだけを守るパターンに変えてみる
  • ユーザーを追加・削除してみる
  • HTTPS と組み合わせて、本番運用向けにしてみる

なども、ぜひ試してみてください。

ここまで読んで、そして一緒に設定してくれてありがとうございました!
この記事が、あなたの 「はじめてのApache」「はじめてのBasic認証」
良い一歩になっていたらうれしいです。