Настройка basic и digest аутентификации в Apache

Если хочется закрыть какую либо часть сайта от любопытных глаз, самым простым способом будет настроить basic или digest аутентификацию.
Разница между basic и digest аутентификацией в том что basic отправляет пароли открытым текстом, digest же отправляет хэши паролей.
Digest метод предпочтительней, так как безопасней. Пароли будем хранить в файле.

Подразумевается что используется Apache 2.2, для других версий инструкции по настройке аутентификации могут отличаться.

Обратите внимание что аутентификация обеспечивает только ограничение доступа к сайту или его части. Если нужно шифрование передаваемых между сайтом и браузером пользователя данных нужно использовать SSL.
Настройка аутентификации
basic

Вписываем в описание виртуального хоста, или директории сайта:
AuthType basic
AuthName "private area"
AuthUserFile /usr/local/www/etc/.htpasswd
Require valid-user

Создаем директорию в которой разместим файл для аутентификации.
mkdir /usr/local/www/etc

Создадим файл .htpasswd который будет хранить имена пользователей и пароли:
cd /usr/local/www/etc
htpasswd -c .htpasswd user

И введем пароль для пользователя user.
Сделаем этот файл принадлежащим веб серверу и запретим чтение для остальных пользователей:
chown www:www .htpasswd
chmod 640 .htpasswd

Поменять пароль или добавить нового пользователя можно с помощью команды:
htpasswd .htpasswd user

Для удаления пользователя можно использовать
htpasswd -D .htpasswd user
digest

Вписываем в описание виртуального хоста, или директории сайта:
AuthType Digest
AuthName "private"
AuthDigestDomain /private/ http://example.com/private/
AuthDigestProvider file
AuthUserFile /usr/local/www/etc/.htdigest
Require valid-user

Создаем директорию в которой разместим файл для аутентификации.
mkdir /usr/local/www/etc

Создадим файл .htdigest который будет хранить имена пользователей и пароли:
cd /usr/local/www/etc
htdigest -c .htdigest private user

И введем пароль для пользователя user.
Обратите внимание на private в команде, это значение должно совпадать со значением в AuthName «private»
Сделаем этот файл принадлежащим веб серверу и запретим чтение для остальных пользователей:
chown www:www .htdigest
chmod 640 .htdigest

Поменять пароль или добавить нового пользователя можно с помощью команды:
htdigest .htdigest private user

Для удаления пользователя можно использовать
htdigest -D .htdigest private user
Заключение

И по окончании всех правок - перезапускаем apache:
apachectl graceful

http://jakshi.org.ua/dokuwiki/настройка_basic_и_digest_аутентификации_в_apache

Обновлено: 13.03.2015