WEB開発備忘録

ドメイン別にdigest認証設定 / apacheでアクセス制限

1つのWEBサーバで複数のドメインを運用
個別にアクセス認証したい

こういった条件で、apache2.4による設定を行いました。
設定は単純で、ドメインごとのvirtualhostディレクティブ内にlocationディレクティブでdigest認証の設定をしただけです。

<VirtualHost *:80>
  DocumentRoot ディレクトリパス
  ServerName アクセス制限したいドメイン
 <Location "/">
   AuthType Digest
   AuthName "アクセス制限領域名"
    AuthUserFile パスワードファイルパス
    Require user ログイン時ユーザー名
   </Location>
</VirtualHost>
<VirtualHost *:80>
  DocumentRoot ディレクトリパス
  ServerName アクセス無しのドメイン
  <Location "/">
    AuthType None
    Require all granted
  </Location>
</VirtualHost>

ちなみにパスワードの作成は以下のコマンドで。

[prompt] # htdigest -c パスワードファイルのパス "領域名" ユーザー名
--
ex)
[prompt] # htdigest -c /etc/httpd/.htdigest 'Secret Zone' secret