はじめに
Apacheを使ってベーシック認証を実装する機会があったので、まとめてみます。
認証ユーザーとパスワードを設定する
$ sudo htpasswd -c /etc/httpd/htpasswd ユーザー名
New password: パスワード
Re-type new password: パスワード
-c コマンドは、ユーザーとパスワードが書かれたファイルを新規作成or上書きします。
cat コマンドで確認すると、ユーザーとパスワードが見れます!
$ cat .htpasswd
ユーザー名:暗号化されたパスワード
パスワードファイルのアクセス権を変更する
apacheのみがアクセスできるようにしておきます。
$ sudo chown apache:apache /etc/httpd/htpasswd
$ sudo chmod 600 /etc/httpd/htpasswd
Apacheの設定
confファイルを編集
confファイルを開きます。
$ sudo vim /etc/httpd/conf/httpd.conf
Directoryタグを追加します。
<Directory "/var/www/html">
AuthType Basic
AuthName "auth"
AuthUserFile /etc/httpd/htpasswd
Require valid-user
</Directory>
※例では アクセス制限をかける場所を、/var/www/html としていて、Apacheの公開ディレクトリ全部にアクセス制限を行なっています。
リロードして設定ファイルを反映させる
$ sudo systemctl reload httpd.service
該当ページへアクセス
ベーシック認証画面が表示されていれば成功です!