2026年11月6日
2026年11月6日
Apacheのmod_auth_digestでDigest認証を設定する方法
はじめに
この記事では、Apache HTTPサーバーにmod_auth_digestモジュールを使用してDigest認証を設定する方法について説明します。Digest認証は、ユーザーのパスワードを暗号化することで安全性が向上し、またHTTPプロトコルを通じてセッション情報を転送できるため、ウェブアプリケーションや内部リソースへのアクセス制御に適しています。
症状・背景
- Webアプリケーションの安全管理: ウェブサイト内の重要なデータや機能を保護するために、ユーザー認証が必要な場合
- APIのセキュリティ: 外部から呼び出されるAPIへのアクセスを制限する必要がある場合
- ローカルネットワークのセキュリティ: 内部ネットワークに公開されたサーバーへのアクセスを管理する必要がある場合
手順・設定方法
ステップ1: mod_auth_digestモジュールのインストール
# Apache 2.4以降では、mod_auth_digestはデフォルトで含まれています。
sudo apt update && sudo apt install apache2-utils
ステップ2: セキュリティファイルの生成
# htpasswdコマンドを使用してユーザーアカウントを作成します。
sudo htpasswd -c /etc/apache2/digest-users user1
このコマンドを実行し、ユーザー名とパスワードを入力します。-cフラグは新しいファイルに最初のユーザーを追加する場合に使用します。
ステップ3: 認証設定の追加
# /etc/apache2/sites-available/000-default.conf または適切な-virtual-hostに以下の設定を追加します。
<Directory "/var/www/html">
AuthType Digest
AuthName "Restricted Area"
AuthDigestDomain /var/www/html
AuthUserFile /etc/apache2/digest-users
Require valid-user
</Directory>
ステップ4: 配置とテスト
# Apacheを再起動して変更を適用します。
sudo systemctl restart apache2
# ブラウザで認証が必要なリソースにアクセスし、Digest認証が機能することを確認します。
注意事項
- パスワードの管理:
/etc/apache2/digest-usersファイルへのアクセスは厳重に管理してください - セキュリティ上の注意: ユーザー名とパスワードは常に安全な場所に保管するようにします
- パフォーマンス/運用上の注意: Digest認証は一時的なメモリ使用量を増加させる可能性があります
まとめ
1. mod_auth_digestのインストール: Apache HTTPサーバーにDigest認証機能を追加します。
2. htpasswdコマンド: ユーザー名とパスワードを安全なファイルに保存します。
3. 認証設定の追加: 適切なディレクトリに Digest 認証設定を適用します。
4. Apacheの再起動: 設定が有効になるまでサーバーを再起動します。
関連記事: