Vyhledávání na webu

Jak chránit heslem webové adresáře v Nginx


Manažeři webových projektů často potřebují chránit svou práci tak či onak. Lidé se často ptají, jak chránit svůj web heslem, když je stále ve vývoji.

V tomto tutoriálu vám ukážeme jednoduchou, ale účinnou techniku, jak webový adresář chráněný heslem při spuštění Nginxu jako webového serveru.

V případě, že používáte webový server Apache, můžete se podívat na naši příručku pro ochranu webového adresáře heslem:

  1. Heslo chránit webové adresáře v Apache

Požadavky

K dokončení kroků v tomto tutoriálu budete potřebovat:

  • Nainstalovaný webový server Nginx
  • Kořenový přístup k serveru

Krok 1: Vytvořte uživatele a heslo

1. Abychom chránili náš webový adresář heslem, budeme muset vytvořit soubor, který bude obsahovat naše zašifrované uživatelské jméno a heslo.

Při používání Apache můžete použít nástroj „htpasswd“. Pokud máte tento nástroj nainstalovaný ve svém systému, můžete pomocí tohoto příkazu vygenerovat soubor s hesly:

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

Při spuštění tohoto příkazu budete požádáni o nastavení hesla pro výše uvedeného uživatele a poté bude v zadaném adresáři vytvořen soubor .htpasswd.

2. Pokud tento nástroj nemáte nainstalovaný, můžete soubor .htpasswd vytvořit ručně. Soubor by měl mít následující syntaxi:

username:encrypted-password:comment

Uživatelské jméno, které budete používat, závisí na vás, vyberte si, co chcete.

Důležitější je způsob, jakým pro daného uživatele vygenerujete heslo.

Krok 2: Vygenerujte zašifrované heslo

3. Chcete-li vygenerovat heslo, použijte integrovanou funkci „crypt“ v Perlu.

Zde je příklad tohoto příkazu:

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

Příklad ze skutečného života:

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

Nyní otevřete soubor a vložte své uživatelské jméno a vygenerovaný řetězec, oddělený středníkem.

Zde je postup:

vi /home/tecmint/.htpasswd

Zadejte své uživatelské jméno a heslo. V mém případě to vypadá takto:

tecmint:1xV2Rdw7Q6MK.

Uložte soubor stisknutím klávesy Esc a následně klávesy :wq.

Krok 3: Aktualizujte konfiguraci Nginx

4. Nyní otevřete a upravte konfigurační soubor Nginx přidružený k webu, na kterém pracujete. V našem případě použijeme výchozí soubor na adrese:

vi /etc/nginx/conf.d/default.conf       [For CentOS based systems]
OR
vi /etc/nginx/nginx.conf                [For CentOS based systems]


vi /etc/nginx/sites-enabled/default     [For Debian based systems]

V našem příkladu budeme heslem chránit kořen adresáře pro nginx, což je: /usr/share/nginx/html.

5. Nyní přidejte následující dva řádky pod cestu, kterou chcete chránit.

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

Nyní uložte soubor a restartujte Nginx pomocí:

systemctl restart nginx
OR
service nginx restart

6. Nyní zkopírujte/vložte tuto IP adresu do svého prohlížeče a měli byste být požádáni o heslo:

A je to! Váš hlavní webový adresář je nyní chráněn. Chcete-li odstranit ochranu heslem na webu, jednoduše odstraňte dva řádky, které jste právě přidali do souboru .htpasswd, nebo použijte následující příkaz k odebrání přidaného uživatele ze souboru hesel.

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