Пароль на файл/каталог вэб-сервера NGINX в Centos/Ubuntu

Рассмотрим процесс настройки доступа по паролю к каталогу или файлу на web-сервере NGINX на примере виртуальной машины от компании «Облакотека»

Для того, что бы сделать доступ по паролю в каталог вэб-сервера NGINX для начала необходимо сгенерировать файл с логином/паролем .htpasswd
Это можно сделать с помощью утилиты от вэб-сервера Apache, либо про помощи php, либо с помощью bash.

Установим утилиту от вэб-сервера Apache:

Для Centos:

[root@localhost]# yum install httpd-tools

Для Ubuntu/Debian:

[root@localhost]# sudo apt-get install apache2-utils

Сгенерируем пароль:

[root@localhost]# htpasswd -c /var/www/example.ru/public_html/.htpasswd username

где:
/var/www/example.ru/public_html/ – путь к каталогу
username – имя пользователя, которое мы будем использовать для аутентификации

Сгенерируем пароль для файла .htpasswd при помощи php:

[root@localhost]# php -r 'echo crypt("your_password", "salt");'

где:
your_password - ваш пароль
salt - соль для пароля, должна содержать минимум 2 символа из набора “0-9 A-Z a-z”

Далее нам надо создать сам файл .htpasswd и вписать в него данные в формате:

username:password

где:
username – имя пользователя, которое мы будем использовать для аутентификации
password - наш сгенерированный пароль

Сгенерируем файл .htpasswd при помощи bash:

[root@localhost]# printf "USER:$(openssl passwd -crypt PASSWORD)\n" >> /var/www/example.ru/public_html/.htpasswd

где:
USER – имя пользователя, которое мы будем использовать для аутентификации
PASSWORD - наш пароль
/var/www/example.ru/public_html/ - каталог, куда сохранится файл

Я использовал именно этот метод

Редактируем файл конфигурации NGINX, в данном случае нашего виртуального хоста

[root@localhost]# nano /etc/nginx/sites-available/example.ru.conf
. . .
location /test {
        auth_basic "Password-protected Area";
        auth_basic_user_file /etc/nginx/.htpasswd;
	#autoindex on; # для режима просмотра файлов и директорий
}

Проверяем корректность настроек и перезапускаем иэб-сервер

[root@localhost]# nginx -t
[root@localhost]# service nginx restart

Например, что бы закрыть каталог wp-admin — в блоке server указываем:

location = /wp-login.php {
        
        auth_basic "Restricted";
        auth_basic_user_file /var/www/example.ru/public_html/.htpasswd;
        include fastcgi_params;
        fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        }

Максим Макаров
У блога появился хостинг, его любезно предоставила компания Облакотека.
Облакотека - облачные сервисы для создания и управления виртуальной ИТ-инфраструктурой.
Если вам понравился мой блог и вы хотели бы видеть на нем еще больше полезных статей, большая просьба поддержать этот ресурс. Для этого достаточно кликнуть на контекстную рекламу, расположенную на сайте.
Оцените автора
IT Draft
Добавить комментарий

Нажимая на кнопку "Отправить комментарий", я даю согласие на обработку персональных данных и принимаю политику конфиденциальности.