Server Linux

Nginx Proxy Manager: come gestire domini e certificati SSL gratuiti in pochi clic

Quando si configura un Homelab professionale o un server aziendale per una PMI, uno dei problemi più ricorrenti è l'esposizione sicura dei servizi verso l'esterno. Applicazioni cruciali come Nextcloud, Vaultwarden o Paperless-ngx richiedono obbligatoriamente connessioni cifrate in HTTPS per funzionare correttamente, specialmente sui dispositivi mobili. Tuttavia, configurare manualmente i file di testo di Nginx o Apache e gestire il rinnovo dei certificati di sicurezza può diventare un incubo per chi non ha competenze sistemistiche avanzate.

La soluzione ideale a questo problema si chiama Nginx Proxy Manager (NPM), una delle dashboard open source più potenti e intuitive del panorama self-hosted. In questa guida vedremo cos'è questo straordinario Reverse Proxy e come installarlo su Ubuntu 24.04 LTS utilizzando Docker Compose.

Cos'è un Reverse Proxy e perché Nginx Proxy Manager è indispensabile

Un Reverse Proxy agisce come un vigile urbano per il traffico web in entrata nel tuo server. Quando un utente digita un indirizzo (es. cloud.tuaazienda.it), la richiesta arriva al router aziendale e viene inoltrata al Reverse Proxy sulla porta standard 443 (HTTPS). Il proxy analizza il dominio richiesto e, internamente, indirizza l'utente verso il container Docker corretto (che magari risiede sulla porta nascosta 8080).

Nginx Proxy Manager prende tutta la potenza di Nginx e la racchiude in una splendida interfaccia web grafica. Grazie a NPM, non dovrai mai più toccare una riga di codice di configurazione per:

  • Ottenere certificati SSL Gratuiti: Il sistema si integra nativamente con Let's Encrypt. Con un solo clic richiedi, installi e automatizzi il rinnovo periodico del lucchetto verde HTTPS.
  • Centralizzare gli accessi: Puoi gestire decine di siti web, pannelli di controllo e applicazioni Docker usando un unico punto di ingresso, senza dover aprire centinaia di porte sul router dell'ufficio.
  • Protezione di base: Include interruttori rapidi per bloccare exploit comuni, forzare il traffico su HTTPS e configurare elenchi di controllo degli accessi (ACL) basati su password.

Prerequisiti di Rete prima di iniziare

Per fare in modo che Nginx Proxy Manager funzioni correttamente, è necessario predisporre l'ambiente con tre passaggi fondamentali:

  1. Configurazione DNS: Nel pannello del tuo fornitore di dominio, crea dei record di tipo A (o un record wildcard *) che puntino all'indirizzo IP pubblico della tua VPS o della connessione aziendale.
  2. Port Forwarding sul Router: Se il server si trova fisicamente in ufficio, accedi al router e instrada le porte pubbliche 80 (HTTP) e 443 (HTTPS) esclusivamente verso l'IP locale del server Ubuntu.
  3. Nessun altro servizio sulle porte 80 e 443: Assicurati che sul server non ci siano altre istanze di Apache o Nginx attive nativamente che possano andare in conflitto.

Guida Pratica all'Installazione con Docker Compose

1. Creazione della directory

Connettiti al server in SSH e prepara la cartella dedicata all'interno della directory /opt:

sudo mkdir -p /opt/nginx-proxy-manager
sudo chown -R $USER:$USER /opt/nginx-proxy-manager
cd /opt/nginx-proxy-manager

2. Creazione del file docker-compose.yml

Apri l'editor Nano per generare lo stack di configurazione:

nano docker-compose.yml

Incolla la seguente configurazione standard ottimizzata, che include il motore proxy e un database SQLite integrato per la massima leggerezza:

version: '3.8'
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    container_name: nginx-proxy-manager
    restart: unless-stopped
    ports:
      - '80:80'   # Porta pubblica HTTP
      - '443:443' # Porta pubblica HTTPS
      - '81:81'   # Pannello di controllo Amministrativo (tenere protetto)
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt

Salva ed esci dall'editor premendo Ctrl+O, Invio e infine Ctrl+X.

3. Avvio del container

Lancia l'applicazione in background digitando nel terminale:

docker compose up -d

Primo Accesso e Configurazione del tuo primo Dominio

Apri il browser e collegati all'indirizzo IP del tuo server sulla porta 81 (es. http://192.168.1.100:81). Il sistema ti accoglierà con delle credenziali predefinite che dovrai modificare immediatamente dopo il primo login:

  • Email predefinita: Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.
  • Password predefinita: changeme

Come mappare un servizio (es. Vaultwarden) in HTTPS:

  1. Dalla dashboard, vai nella scheda Hosts e clicca su Proxy Hosts, quindi su Add Proxy Host.
  2. Domain Names: Inserisci il dominio configurato (es. pass.tuaazienda.it).
  3. Forward Scheme: Lascia http.
  4. Forward Hostname / IP: Inserisci l'IP locale del server o, se i container condividono la stessa rete Docker, il nome del container di Vaultwarden.
  5. Forward Port: Inserisci la porta interna dell'applicazione (es. 8080 per la configurazione Vaultwarden vista in precedenza).
  6. Seleziona le voci Block Common Exploits e Websockets Support (quest'ultima fondamentale per le notifiche in tempo reale).
  7. Spostati nella scheda SSL, seleziona Request a New SSL Certificate dal menu a tendina, accetta i termini di Let's Encrypt e clicca su Save.

Dopo pochi secondi di elaborazione, la riga diventerà verde: il tuo servizio sarà raggiungibile in tutto il mondo in modo sicuro all'indirizzo https://tuaazienda.it.

Conclusioni e Sicurezza

Nginx Proxy Manager elimina la complessità della gestione sistemistica delle reti, permettendo anche alle piccole realtà di strutturare un'architettura web sicura e cifrata a costo zero. Ricorda, per una sicurezza ottimale, di non esporre mai la porta 81 su Internet, ma di lasciarla accessibile solo all'interno della rete locale o tramite una VPN Mesh sicura come NetBird.

Related Articles