zuntan02のはてなブログ

備忘録的なものです。時々職場の技術者ブログにも転記してますが、メインはこちらで。

(メモ)Apacheでダイジェスト認証

【参照】

qiita.com

曰く

Basic認証はユーザ名とパスワードをBase64エンコードしたものを使う認証で、
Digest認証はユーザ名とパスワードをMD5でハッシュ化したものを使う。

なるほどDigestのほうがよさそう。

【手順】

1)モジュールの確認
apachectl -M | grep digest

で auth_digest_module (shared) が出てればOK.
→無いときはhttpd.confでいかがコメントアウトされていないか、とか
# LoadModule auth_digest_module modules/mod_auth_digest.so
/etc/httpd/modules の下あたりを確認する
2)htdigestコマンドでパスワードファイルを作成
htdigest [-c] パスワードファイル名 領域名 ユーザー名
  • オプション:初回のみ-cで作成。追加する場合はオプションなし。
  • 領域(レルム)名:下記confで「AuthName」に指定する文字列を設定

例)

htdigest -c /etc/httpd/conf/.htdigest 'Secret Zone' hogeuser
3)ApacheのconfファイルにDigest認証の設定を追記

ユーザー認証によるアクセス制限をかけるディレクト

/var/www/html/member

の場合、Apacheの設定ファイル(/etc/httpd/conf.d/hoge.confなど)

<Directory "/var/www/html/member">
    AuthType Digest
    AuthName "Secret Zone"
    AuthUserFile /etc/httpd/conf/.htdigest
    Require valid-user
</Directory>

# もしくは

<Location />
    AuthType Digest
    AuthName "Secret Zone"
    AuthUserFile /etc/httpd/conf/.htdigest
    Require valid-user
</Location>
4)Apacheを再起動して再起動。