Устанавливаем пароль на сайт под управлением Nginx используя OpenSSL
Для защиты паролем веб-каталога или страницы сайта, нужно создать файл, в которым будет имя пользователя и его пароль. Сделать это можно с помощью утилит OpenSSL.
В Linux Gentoo Nginx необходимо собрать с модулем auth_basic, его необходимо указать в файле /etc/portage/make.conf:
NGINX_MODULES_HTTP="auth_basic"
Создадим пользователя, например, stepa:
Добавим пароль к созданному пользователю:
Посмотреть, что получилось:
Защитить паролем только определённый файл (/admin/control.php):
location = /admin/control.php { auth_basic "Administrator Login"; auth_basic_user_file /var/www/.htpasswd; }
Защитить паролем весь каталог сайта (/admin/):
location /admin/ { auth_basic "Administrator Login"; auth_basic_user_file /var/www/.htpasswd; }
По возможности файл .htpasswd лучше положить в каталог, недоступный через WWW. Если это невозможно, следует запретить к нему доступ:
location =/.htpasswd { deny all; }
Чтобы директива deny стала доступна, в Gentoo необходимо собрать Nginx с модулем access. Укажите его (или добавьте) в файле /etc/portage/make.conf:
NGINX_MODULES_HTTP="access"
Перегружаем Nginx: