I gestori di progetti web hanno spesso bisogno di proteggere il proprio lavoro in un modo o nell'altro. Spesso le persone chiedono come proteggere con password il proprio sito Web mentre è ancora in fase di sviluppo.
In questo tutorial, ti mostreremo una tecnica semplice ma efficace su come proteggere una directory web con password quando si esegue Nginx come server web.
Se stai utilizzando un server web Apache, puoi consultare la nostra guida per la protezione con password di una directory web:
Per completare i passaggi di questo tutorial, dovrai disporre di:
1. Per proteggere con password la nostra directory web, dovremo creare il file che conterrà il nostro cifrato nome utente e parola d'ordine.
Quando si usa Apache, puoi usare il "htpasswd" utilità. Se hai quell'utilità installata sul tuo sistema, puoi usare questo comando per generare il file della password:
# htpasswd -c /percorso/del/file/.htpasswd nome utente.
Quando esegui questo comando, ti verrà chiesto di impostare una password per l'utente di cui sopra e successivamente il .htpasswd file verrà creato nella directory specificata.
2. Se non hai questo strumento installato, puoi creare il .htpasswd file manualmente. Il file dovrebbe avere la seguente sintassi:
nome utente: password crittografata: commento
Il nome utente che utilizzerai dipende da te, scegli quello che preferisci.
La parte più importante è il modo in cui genererai la password per quell'utente.
3. Per generare la password, usa l'integrato di Perl "cripta" funzione.
Ecco un esempio di quel comando:
# perl -le 'print crypt("tua-password", "salt-hash")'
Un esempio di vita reale:
# perl -le 'print crypt("#12Dfsaa$fa", "1xzcq")'
Ora apri un file e inserisci il tuo nome utente e il generato nella stringa, separati da punto e virgola.
Ecco come:
# vi /home/tecmint/.htpasswd.
Metti il tuo nome utente e password. Nel mio caso sembra così:
tecnica: 1xV2Rdw7Q6MK.
Salva il file premendo "Esc" seguito da “:wq”.
4. Ora apri e modifica il file di configurazione di Nginx associato al sito su cui stai lavorando. Nel nostro caso utilizzeremo il file predefinito in:
# vi /etc/nginx/conf.d/default.conf [For CentOSsistemi basati] O. # vi /etc/nginx/nginx.conf [ForCentOS sistemi basati] # vi /etc/nginx/sites-enabled/default [For Debian sistemi basati]
Nel nostro esempio, proteggeremo con password la directory root per nginx, che è: /usr/share/nginx/html
.
5. Ora aggiungi la seguente sezione di due righe sotto il percorso che desideri proteggere.
auth_basic "Accesso amministratore"; auth_basic_user_file /home/tecmint/.htpasswd;
Ora salva il file e riavvia Nginx con:
# systemctl riavvia nginx. O. # riavvio del servizio nginx.
6. Ora copia/incolla quell'indirizzo IP nel tuo browser e ti dovrebbe essere richiesta la password:
Questo è tutto! La tua directory web principale ora è protetta. Quando vuoi rimuovere la protezione con password sul sito, rimuovi semplicemente le due righe che hai appena aggiunto .htpasswd file o utilizzare il comando seguente per rimuovere l'utente aggiunto da un file di password.
# htpasswd -D /percorso/a/file/.htpasswd nome utente.