Nginx è un server web gratuito e open-source utilizzato per il bilanciamento del carico, il buffering e il caching. Fin dalla sua nascita nel 2004, Nginx ha guadagnato popolarità per la scalabilità dei server web e il reverse proxying. Grazie alle sue elevate prestazioni e alle eccellenti capacità di gestire un grande volume di connessioni, viene utilizzato per gestire e controllare il traffico in entrata.
Come funziona l'autenticazione HTTP?
Nell'autenticazione HTTP di base, tutte le rotte sul server sono bloccate e richiedono le credenziali appropriate per l'autenticazione. Ogni volta che un utente tenta di accedere a una risorsa protetta, il server invia all'utente un header WWW-Authenticate e una risposta 401 Unauthorized. Se il nome utente e la password utilizzati dall'utente sono corretti e corrispondono al file delle chiavi, la connessione viene stabilita, altrimenti viene negata.
In questo tutorial, ti guideremo attraverso i passaggi per configurare l'autenticazione HTTP di base con Nginx su Ubuntu 20.04.
Prerequisiti
Per seguire questo tutorial, avrai bisogno di quanto segue:
- L'ultima versione di Ubuntu installata sul tuo sistema.
- Gli utenti di sistema devono avere privilegi sudo.
- Nginx installato e configurato sul tuo server.
Passo 1: Aggiornare i repository software
Prima di installare qualsiasi nuovo software o pacchetto API sul sistema, aggiorna i repository per evitare errori o conflitti tra pacchetti. Inizialmente, aggiorneremo il software utilizzando il comando sudo:
|
1 |
sudo apt-get update |
Ora che abbiamo aggiornato i repository software, installiamo i pacchetti apache2 necessari.
Passo 2: Installare i pacchetti necessari
Poiché stiamo configurando l'autenticazione HTTP per una directory, utilizzeremo il comando htpasswd per creare una password crittografata. Installa il pacchetto apache2-utils utilizzando il seguente comando:
|
1 |
sudo apt-get install apache2-utils |
Passo 3: Creare utente e password
In questo passo, configureremo le credenziali di autenticazione HTTP di base. Sotto la directory root, crea un file .htpasswd associato all'utente. La password sarà crittografata e il nome del file può essere a tua scelta. Usa il seguente comando per creare il file e aggiungere l'utente con una password crittografata:
|
1 |
sudo htpasswd -c /etc/nginx/.htpasswd cloudsigma |

Successivamente, verifica il file appena creato utilizzando il seguente comando:
|
1 |
cat /etc/nginx/.htpasswd |
Passo 4: Aggiornare la configurazione di Nginx
Una volta ottenute le credenziali di autenticazione HTTP di base, configuriamo Nginx e utilizziamolo sul nostro sito web di destinazione. Sono necessarie le direttive auth_basic e auth_basic_user_file per stabilire l'autenticazione HTTP di base. Il valore della direttiva auth_basic è in formato stringa, mentre il valore di auth_basic_user_file è il percorso del file delle password creato nel Passo 3.
È importante includere le due direttive nel file di configurazione del sito web di destinazione. Troverai la posizione del sito web di destinazione nella directory /etc/nginx/sites-available directory. Apri il file di configurazione usando l'editor nano:
|
1 |
sudo nano /etc/nginx/sites-available/default |
Quindi, aggiungi entrambe queste direttive sotto la sezione location:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
. . . server_name localhost; location / { # Primo tentativo di servire la richiesta come file, poi # come directory, poi ripiega sulla visualizzazione di un 404. try_files $uri $uri/ =404; # Decommenta per abilitare naxsi su questa posizione # include /etc/nginx/naxsi.rules auth_basic "Private Property"; auth_basic_user_file /etc/nginx/.htpasswd; } . . . |
Dopo aver aggiunto la direttiva, salva e chiudi il file di configurazione.
Passo 5: Riavviare Nginx
Successivamente, ricarica o riavvia i servizi Nginx per applicare le modifiche sul nostro host virtuale. Dopodiché, proveremo ad accedere al dominio protetto utilizzando la nostra autenticazione HTTP di base. Usa il seguente comando per attivare i servizi Nginx:
|
1 |
sudo service nginx reload |
Passo 6: Accesso web sicuro
Una volta riavviato Nginx, il passo successivo consiste nel provare ad accedere all'indirizzo IP o al nome di dominio nel tuo browser preferito. Facendo clic sull'indirizzo IP http://your_domain_name/ nel tuo browser, si aprirà una finestra che ti chiederà di inserire le credenziali per l'autenticazione. Una volta inseriti il nome utente e la password corretti, vedrai la pagina iniziale predefinita di Nginx.
Conclusione
In questo tutorial, abbiamo imparato come configurare l'autenticazione HTTP di base con Nginx. L'autenticazione di base con nome utente/password è solo una delle tante opzioni di autenticazione per stabilire una connessione sicura in Nginx.
Esistono altre potenti opzioni utilizzate per l'autenticazione del server. Ad esempio, alcuni metodi popolari che puoi utilizzare includono integrazioni API, JSON Web Tokens, autenticazioni basate su chiavi SSH. Anche se ottenere meccanismi di sicurezza robusti può sembrare complicato all'inizio, sono altamente efficaci per salvaguardare la tua privacy.
Inoltre, ci sono molti altri materiali didattici e tutorial su Nginx a cui puoi accedere dai nostri blog:
- Panoramica degli algoritmi di selezione dei blocchi Server e Location di Nginx
- Installazione e configurazione di Laravel con Nginx su Ubuntu 20.04
- Configurazione di Django con PostgreSQL, Nginx e Gunicorn su Ubuntu 20.04
Buon computing!

Commenti
Ancora nessun commento. Scrivi il primo.