Linux

【Linux】ApacheでBasic認証の設定手順を解説

こんにちは、インフラエンジニアのryuです。

今回の記事ではApacheでBasic認証の設定手順を解説していきます。設定手順は簡単です。設定ファイルの編集と認証するユーザの作成、ファイルの権限を変える、このくらいです。Basic認証を設定したことのない方でも分るように解説していきます。

ApacheでBasic認証の設定手順を解説

では、早速ApacehでBasic認証の設定手順を解説していきます。

手順①.apache2.configの編集

まず、Basic認証を設定するディレクトリを指定します。Webサーバーは表示するコンテンツをディレクトリに保存します。その保存したディレクトリにアクセスする際は、Basic認証を使いますよ~という設定を行います。

まず、設定ファイルのapache2.configを開きます。

vi /etc/apache2/apache2.cconfig

そして、設定ファイルの中を以下のように設定します。今回は、/var/wwwディレクトリに設定しています。つまり、ドキュメントルートは/var/www/に設定しておいてください。

<Directory /var/www/>
        AuthUserfile /etc/apache2/.htpasswd
        AuthName "basic"
        AuthType Basic
        Require valid-user
</Directory>

設定の各項目について説明します。

  • AuthUserfile /etc/apache2/.htpasswd → 認証するユーザの情報が書かれたファイルを指定
  • AuthName “basic” → 認証時の画面にでるメッセージ。何でもよい
  • AuthType Basic → Basic認証を使用する設定。他にもDigestなどがある
  • Requre valid-user → 認証したユーザのみアクセスできる

設定ファイルについては、以上です。次の手順の説明をします。

手順②.認証するユーザの情報を作成する

次は認証するユーザの情報を作成します。つまり、ユーザ名とパスワードをファイルに登録するということです。先ほどの設定ファイルで指定した”/etc/apache2/.htpasswd“にユーザ情報を保存します。

ユーザの情報を作成するには、以下のコマンドを入力してください。

htpasswd -c /etc/apache2/.htpasswd user

コマンドを入力すると以下の画面のようにパスワードの入力が求められるので、入力します。

認証するユーザの情報を作成する

“.htpasswd”ファイルの中身を確認すると、ユーザ名とパスワードが保存されていることが分かります。この情報を使用してBasic認証を行います。

手順③.ファイルの権限を変更する

次は、ファイルの権限を変更するです。先ほど、”/etc/apache2/.htpasswd”の権限を変更します。変更する理由は、apacheのプロセスを動作させているユーザが”/etc/apache2/.htpasswd”の読み取り権限がなく、読み取りができないからです。

“ls -la”コマンドを利用し、ファイルの権限を確認してみましょう。

確認できたら、ファイルの権限の変更を行います。以下のコマンドを入力してください。

chmod 644 /etc/apache2/.htpasswd

”644″はファイルのパーミッションです。これで、ファイルの所有者以外のユーザも読み取りが可能になります。

手順④.apache再起動

設定の変更をしたら、最後に再起動を行います。以下のコマンドを入力してください。

/etc/init.d/apache2 restart

これでBasic認証の設定が完了しました。

Basic認証の動作を確認してみよう!

設定が完了したら、動作するか確認してみましょう。自分が作成したWebサーバにアクセスしてください。アクセスすると、Webページが表示される前に、認証画面が表示されます。

先ほど登録したユーザで認証しましょう。成功するとWebページが正しく表示されます。

さいごに

今回の記事ではApacheでBasic認証の設定手順を解説しました。簡単に設定できると思います。Webサーバの認証はBasic認証以外にもあるので、興味のある方は調べてみてください。また、Basic認証とIPアドレス制限を組み合わせるやり方などもあるので、いろいろと応用が利きます。ぜひやってみてください。

ABOUT ME
ryu
大手メーカのIT部門でインフラエンジニアやってます。 サーバ、ネットワーク、セキュリティ、クラウドについて投稿します。 AI、ARも勉強中です! youtubeでも技術ネタを発信していきます。↓のアイコンよりご覧ください!