Skip to main content
13 Feb

HTTP autentifikacija za Wordpress login stranicu - nginx

Dodatni sloj sigurnosti koji pomaže pri spriječavanju neovlaštenog pristupa Wordpress administracijskom sučelju je jednostavna http autentifikacija pomoću korisničkog imena i lozinke.

Prvi korak je kreiranje /etc/nginx/.htpasswd datoteke (zamijenite /etc/nginx sa putanjoj do vaše nginx konfiguracije ako nije na toj lokaciji):

# sh -c "echo -n 'myusername:' >> /etc/nginx/.htpasswd"

# sh -c "openssl passwd -apr1 >> /etc/nginx/.htpasswd"

U drugom koraku openssl će vas pitati da unesete lozinku s potvrdom. Ove dvije naredbe će kreirati spomenutu datoteku ovakvog sadržaja:

myusername:$apr1$pMp6hPSS$NX5NXgLkdDuEdRJaK/TLb1

Ako želite koristiti druga korisnička imena, ponovite postupak i za njih.

Preostalo je još upotrijebiti tu datoteku za nginx autentifikaciju. U nginx.conf dodat ćemo slijedeći location blok:

    location = /wp-login.php {
        auth_basic "Authorized Access Only";
        auth_basic_user_file /home/cromethr/web/crometeo.hr/.htpasswd;

       <fastgi konfiguracija obavezno ide ovdje>
    }

Navedeno će uzrokovati da se za svaki pristup adresi www.mywordpress.com/wp-login.php (kao i www.mywordpress.com/wp-admin budući da Wordpress sve neprijavljene korisnike preusmjerava na wp-login.php ako pokušaju pristupiti bilo kojem dijelu wp-admin putanje) zahtijeva unos korsničkog imena i lozinke (iz prva dva koraka). Naravno da ovo korisničko ime i lozinka ne smiju biti istovjetni onima za prijavljivanje u sam Wordpress, inače dodatna autentifikacija nema smisla.