Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Guida pratica: proteggere le webapp con un reverse proxy locale ( No IP Pubblico No Porte aperte SI DOMINIO )

Featured Replies

Ciao a tutti,

scrivo una guida su come poter avere l'HTTPS per le proprie app ma accessibili solo in locale o con Tailscale.

Se non avete un dominio utilizzate la mia altra guida :) Questa quà :)

Passo 1: Spostare l’interfaccia GUI di Unraid su una nuova porta

Prima di andare troppo avanti, dobbiamo liberare le porte 80 e 443 (HTTP e HTTPS) per il nostro reverse proxy.
Per impostazione predefinita, Unraid utilizza queste porte per la GUI al fine di consentire il monitoraggio/configurazione remota.

La maggior parte della documentazione e delle guide presuppone che tu stia esponendo le porte sul tuo router e che il router possa inoltrare il traffico delle porte 80 e 443 a qualunque porta stia usando Nginx Proxy Manager (NPM).
Con questa guida, invece, tutto il traffico http/https bypassa il router e va direttamente sulle porte 80 e 443, quindi dobbiamo modificarne la configurazione e mettere Nginx Proxy Manager al loro posto.

  1. Accedi alla GUI di Unraid.

  2. Vai su Settings > Management Access.

  3. Assicurati che Use SSH sia abilitato e che la porta sia impostata su 22.

    • Questo sarà il nostro accesso di riserva al server nel caso in cui qualcosa vada storto e non sia più possibile accedere alla GUI.

    • Di solito è già attivo di default.

  4. Cambia la porta HTTP: da 80 a qualcos’altro, ad esempio 90 o 11080.

    • Scrivi da qualche parte questa modifica! Se dimentichi il numero, non potrai più accedere alla web GUI di Unraid.

    • Assicurati che questa porta non sia in conflitto con quelle utilizzate dai tuoi container Docker.

  5. Cambia la porta HTTPS: da 443 a qualcos’altro, ad esempio 453 o 11443.

    • Annota anche questa modifica!

    • Assicurati che non vada in conflitto con quelle utilizzate dai container Docker.

  6. Dopo qualche secondo dovresti essere disconnesso dalla GUI di Unraid.

    • Riconnettiti usando la nuova porta digitando:
      X.X.X.X:[Numero Porta]

      • X.X.X.X = l’indirizzo IP del tuo server Unraid

      • [Numero Porta] = il numero di porta che hai assegnato a HTTP nel passo 4.

Congratulazioni! Ora possiamo installare Nginx Proxy Manager per controllare il traffico in arrivo.

Passo 2: Nginx Proxy Manager in funzione

Ora useremo Nginx Proxy Manager (abbreviato in NPM) per gestire tutto il traffico in entrata e instradarlo dove necessario.
Lo utilizziamo per centralizzare l’instradamento del traffico e ottenere i certificati SSL per abilitare l’HTTPS.

  1. Nella GUI di Unraid, vai su Apps e cerca Nginx Proxy Manager.

  2. Trova quello chiamato "NginxProxyManager" di "Djoss's Repository".

  3. Clicca sull’app, quindi su Install.

  4. Imposta:

    • HTTP Port: su 80

    • HTTPS Port: su 443

    • Controlla bene che la Web UI Port non vada in conflitto con nessuno dei tuoi altri container Docker.
      Puoi cambiarla se vuoi, ma ricordati il numero per poterci accedere in seguito.

    • Se stai usando reti Docker personalizzate, imposta la variabile Network Type di conseguenza.

  5. Clicca su Done e attendi che Docker scarichi tutto e avvii il container.

  6. Avvia l’interfaccia web GUI di NPM.

  7. Accedi a NPM usando le credenziali di default:

  8. Cambia l’email e la password dell’amministratore con qualcosa di nuovo e univoco.

Congratulazioni, Nginx Proxy Manager è ora configurato e in esecuzione sul tuo server Unraid ed è pronto per essere utilizzato.

Passo 3: Risoluzione con Dominio Personalizzato

NOTA: Questi passaggi sono volutamente generici, perché ogni provider DNS è diverso. Dovrai adattarli al tuo caso. In linea generale, si tratta di aggiungere un record A al tuo dominio e puntarlo all’indirizzo IP Tailscale del tuo server Unraid.

  1. Accedi al tuo provider DNS.

    • Di solito è lo stesso servizio da cui hai acquistato il dominio (GoDaddy, NameCheap, Google Domains, ecc.).

  2. Vai alla pagina che ti permette di modificare i record del dominio che vuoi usare.

  3. Crea un nuovo record A:

    • Hostname = @

    • IP Address = l’indirizzo IPv4 Tailscale del server Unraid

  4. Attendi la propagazione del record DNS agli altri server.

    • Può richiedere fino a 48 ore.

    • Nella mia esperienza i cambiamenti avvengono abbastanza velocemente (~5 minuti).

  5. Testa l’instradamento digitando il tuo dominio (es. example.com) su un dispositivo connesso alla tua rete interna.

    • Dovresti vedere la pagina iniziale di NPM.

    • Se ti disconnetti e ricarichi la pagina, la pagina di NPM non dovrebbe più caricarsi.

  6. Per ogni servizio che vuoi ospitare, crea un nuovo record CNAME:

    • Hostname = il nome che vuoi dare al servizio

      • Esempio: nextcloud.example.com

    • Value = il tuo dominio (es. example.com)

  7. Attendi la propagazione dei cambiamenti DNS (vedi nota al passo 5).

  8. Apri la GUI di NPM.

  9. Vai su Hosts > Proxy Hosts.

  10. Clicca su Add Proxy Host (in alto a destra).

  11. Compila la finestra di dialogo con queste informazioni:

    • Domain Names = il dominio completo che vuoi assegnare al servizio

      • Premi Tab o Invio dopo aver scritto: se non lo fai, il testo scomparirà e causerà un errore.

    • Scheme = se il servizio accetta traffico http o https sulla porta indicata

    • Forward Hostname/IP = l’IP Tailscale del servizio (di solito il tuo server Unraid)

    • Forward Port = la porta su cui gira il servizio

      • La trovi nei container Docker della GUI di Unraid

    • Cache Assets = scegli se vuoi che NPM faccia caching degli asset del servizio

    • Block Common Exploits = attivo (a volte può dare problemi, ma di default conviene tenerlo attivo)

    • Websockets Support = attivalo se il servizio richiede websocket

    • Access List = Publicly Accessible

  12. Testa il dominio personalizzato digitandolo nel browser: dovresti essere indirizzato al tuo servizio.

  13. Ripeti i passaggi 6–13 per ogni servizio che stai ospitando.

Congratulazioni, ora i tuoi servizi sono accessibili tramite domini personalizzati all’interno della tua rete Tailscale.

Passo 4: SSL e HTTPS

Il metodo standard per configurare i certificati SSL di Let’s Encrypt prevede che il server remoto validi la tua proprietà del dominio cercando un file ospitato sul tuo server. Ovviamente questo non funziona quanto il reindirizzamento del dominio punta ad un ip locale.
Invece, useremo una sfida DNS (DNS challenge) per autenticare la proprietà del dominio.

  • In pratica, invece di caricare un file sul server, aggiungeremo un record DNS contenente una stringa di testo fornita da Let’s Encrypt.

  • Poiché quella stringa non era presente prima e lo è dopo la richiesta, Let’s Encrypt deduce che siamo noi ad averla aggiunta e quindi proprietari del dominio.

Procedura in NPM:

  1. Apri NPM e vai su SSL Certificates.

  2. Clicca su Add SSL Certificate e poi su Let's Encrypt..

  3. Inserisci le informazioni nei campi:

    • Domain Names = il dominio completo, con eventuali sottodomini

      • Esempio: cloud.example.com

    • Email Address for Let’s Encrypt = un indirizzo email reale che Let’s Encrypt possa contattare

      • Ti avviseranno via mail in caso di problemi, quindi deve essere monitorato.

    • Use a DNS Challenge = attiva

    • DNS Provider = il tuo provider DNS

    • Credentials File Content = simile a quando modifichi record DNS o apri porte sul router: ci sono molte variabili. Consulta la documentazione del tuo provider DNS e il testo mostrato nella finestra.

    • Propagation Seconds = puoi lasciare vuoto

  4. Accetta i Termini e Condizioni di Let’s Encrypt.

  5. Clicca su Save.

  6. Attendi che il sistema processi la richiesta.

    • Può richiedere qualche minuto, abbi pazienza.

  7. Il tuo certificato dovrebbe ora comparire nell’elenco.

  8. Vai su Hosts > Proxy Hosts.

  9. Seleziona il dominio associato e clicca sul menu a tre puntini, poi su Edit.

  10. Clicca su SSL in alto nella finestra di dialogo.

  11. Seleziona il certificato SSL creato per quel dominio dal menu a tendina.

  12. Ripeti i passaggi 1–11 per ogni sottodominio che stai usando.

A questo punto, i tuoi servizi sono protetti da SSL e raggiungibili tramite HTTPS.

  • Yusseiin changed the title to Guida pratica: proteggere le webapp con un reverse proxy locale ( No IP Pubblico No Porte aperte SI DOMINIO )

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.