Http Basic Auth s Apache serverem a .htaccess

Jednoduchý a rychlý způsob jak schovat webové stránky za přihlášení, pokud máme webový server Apache.

Při vývoji webových stránek je občas nutné schovat je jako celek za nějaké jednoduché přihlášení. Může to být z testovacích důvodů nebo v situacích, kdy se nevyplatí vyvinout složitější autentikační mechanismus.

Nastavení Http Basic Authentication je velmi jednoduché a rychlé. V podstatě nám stačí pouze vygenerovat si soubor s přihlašovacími údaji a vložit pár řádků do konfigurace Apache - ať už přímo do definice Virtualhostu nebo do souboru .htaccess.

Vytvoření souboru s přihlašovacími údaji je snadné. Můžeme k tomu buďto využít nějakou online službu, např. https://hostingcanada.org/htpasswd-generator/ nebo využít příkaz htpasswd:

$ htpasswd -bcB .htpasswd username password

Tímto vygenerujeme soubor .htpasswd přímo v aktuálním adresáři a použité parametry -bcB definují:

  • b - heslo zadáváme přímo v příkazu
  • c - požadovaný soubor chceme vytvořit
  • B - pro šifrování hesla použijeme bcrypt

Poté již zbývá pouze nastavit vyžadování autentikace v Apache serveru, kde musí být zapnutý auth_basic modul. Pokud jej nemáme zapnutý a máme root přístup, lze jej jednoduše zapnout příkazem:

a2enmod auth_basic

Vlastní kód pro nastavení autentikace je možné vložit do definice Virtualhostu do direktivy <Directory>:

<Directory /some/path>
    ...
    AuthType Basic
    AuthName "Login required"
    AuthUserFile /absolute/path/to/.htpasswd
    Require valid-user

    # Pokud chcete povolit přihlášení pouze konkrétnímu uživateli
    # Require user username
</Directory>

Je důležité nastavit cestu k autentikačnímu souboru jako absolutní. 

Pokud jej budeme vkládat do .htaccessu, je nutné zkontrolovat, že pro daný <Directory> máme povolenou změnu nastavení v htaccessu. Directivu AllowOverride musíme nastavit buďto na AuthConfig nebo All:

<Directory /some/path>
    ...
    AllowOverride AuthConfig
</Directory>

Poté stačí do .htaccessu přidat:

AuthType Basic
AuthName "Login required"
AuthUserFile /absolute/path/to/.htpasswd
Require valid-user

Basic Authentication v Apache serveru nabízí samozřejmě mnohem více funkcí a možností nastavení. Kompletní dokumentaci si lze projít v oficiální dokumentaci

Mohlo by vás také zajímat

Přesunutí běžících procesů do Tmuxu

Jednoduchý návod jak přesunout dlouho běžící proces z vaší konzole do Tmuxu

Číst více

Apache log a analýza podezřelého provozu

Při správě serveru se často objeví situace, kdy potřebujeme prověřit podezřelý provoz na webserveru. Pokud se jedná o Apache, mohou při analýze pomoci následující tipy

Číst více

nám. Republiky 28
301 00 Plzeň
Česká republika
IČ: 28006402
DIČ: CZ28006402

© 2002 - 2021 iD-SIGN BRANDS MENTIONED ABOVE ARE PROPERTY OF THEIR RESPECTIVE OWNER.