Как установить пароль на сайт (Nginx)

Часто люди ищут информацию как поставить пароль на сайт, например сайт предназначен для разработки и дублирует основной что бы поисковики не индексировали его, ну и от лишних глаз. В этой статье я покажу вам простую, но эффективную технику, как установить пароль на сайт при загрузке, я использую Nginx в качестве веб-сервера. 

Шаг 1: Создание пользователя и пароля

1. Для защиты паролем нашего веб-каталога, нам нужно будет создать файл, который будет содержать наше зашифрованное имя пользователя и пароль.

Если в системе установлена утилита "htpasswd", вы можете использовать эту команду для создания файла паролей:

htpasswd -c /path/to/file/.htpasswd username

При запуске этой команды вам будет предложено установить пароль для вышеупомянутого пользователя, после чего файл .htpasswd будет создан в указанном каталоге.

2. Если у вас не установлен этот инструмент, вы можете создать файл .htpasswd вручную. Файл должен иметь следующий синтаксис:

username:encrypted-password:comment

Имя пользователя, которое вы будете использовать зависит от вас, выбрать все, что вам нравится.

Более важной частью является то, как вы будете генерировать пароль для этого пользователя.

Шаг 2: Создайте зашифрованный пароль

3. Для создания пароля используйте Perl интегрированную функцию «crypt»

Вот пример этой команды:

perl -le 'print crypt("your-password", "salt-hash")'

Пример из реальной жизни:

perl -le 'print crypt("#12Dfsaa$fa", "1xzcq")'

Теперь откройте файл и поместите имя пользователя и сгенерированное в строке его, отделенный точка с запятой.


Шаг 3: Обновление конфигурации Nginx

4. Теперь откройте и отредактировать файл конфигурации Nginx, связанный с сайтом, над который вы работаете. В нашем случае мы будем использовать файл по умолчанию по:

# nano /etc/nginx/conf.d/default.conf       [For CentOS based systems]
ИЛИ
# nano /etc/nginx/nginx.conf                [For CentOS based systems]
ИЛИ
# nano /etc/nginx/sites-enabled/default     [For Debian based systems]

В нашем примере мы защитим паролем корень каталога для nginx, который: ./usr/share/nginx/html

5. Теперь добавьте следующие две строки раздела под путь, который вы хотите защитить.

auth_basic "Administrator Login";
auth_basic_user_file /home/tecmint/.htpasswd;

Теперь сохраните файл и перезапустьте Nginx с помощью:

# systemctl restart nginx
ИЛИ
# service nginx restart


Ну вот! Ваш главный веб-каталог теперь защищен. Если вы хотите удалить защиту паролем на сайте, просто удалите две строки, которые вы только что добавили в файл .htpasswd или используйте следующую команду, чтобы удалить добавленного пользователя из файла пароля.

htpasswd -D /path/to/file/.htpasswd username


ВВЕРХ