Importare un certificato Lets Encrypt nell'USG

In questo articolo della knowledge base, vorrei mostrarti come utilizzare un Raspberry Pi per installare un certificato Let’s Encrypt sul tuo USG.

Introduzione

Utilizzeremo un server Apache e il componente aggiuntivo Let’s Encrypt per Apache in esecuzione su un Raspberry Pi per scaricare un certificato per un nome di dominio specifico. Useremo anche il Pi per aggiornare questo certificato.

Esporteremo il certificato dal Pi e lo importeremo nell'USG.

A cosa serve un certificato?

Con il certificato, eliminerai gli avvisi di sicurezza nel tuo browser, ad esempio per HotSpot o SSL VPN.

Requisiti

  1. Hai bisogno di un nome di dominio (DN) (ad esempio hotspot.hotel-mayer.de)
  2. Se non disponi di un IP statico, devi anche assicurarti che il tuo DN sia sempre aggiornato,
    puoi utilizzare l'opzione DDNS del tuo USG: Configurazione > Rete > DDNS
  3. Se usi il tuo USG in uno scenario di doppio NAT, devi assicurarti che HTTP e HTTPS siano inoltrati all'USG
  4. Devi sapere come utilizzare correttamente il NAT
  5. Hai bisogno di un Raspberry Pi e di una scheda SD per il sistema operativo
  6. Un PC con Tera Term o Putty e WinSCP installati
  7. Devi sapere come usare il terminale SSH sull'USG
  8. L'USG deve essere almeno alla versione firmware 4.30

1. Configurare il Pi e Apache

In questo scenario, abbiamo bisogno solo di un sistema operativo basato su riga di comando per il Pi (Raspbian Stretch Lite)
scaricalo dal sito Raspberry Pi e installalo come descritto nella documentazione.

https://www.raspberrypi.org/downloads/raspbian/
https://www.raspberrypi.org/documentation/installation/installing-images/README.md
 

1.1 Abilitare SSH e cambiare la password

Ora devi abilitare SSH. Per farlo, inserisci la scheda SD nel tuo computer e crea un file vuoto chiamato “SSH” nella cartella radice della scheda SD.

Una volta completata l'installazione, metti il Pi nella tua rete, avvialo e verifica se puoi raggiungerlo via SSH (ad esempio con Putty o Tera Term)

User: pi
Password: raspberry

Raccomandazione 1: cambia la password come descritto qui:
https://www.raspberrypi.org/documentation/configuration/raspi-config.md

Raccomandazione 2: assicurati che il Pi ottenga sempre lo stesso IP

1.2 Aggiornare il Pi e installare il server Apache

Ora possiamo controllare e installare gli aggiornamenti

sudo apt update && sudo apt upgrade --yes

Una volta fatto questo, possiamo installare il server Apache

sudo apt install apache2 --yes

Dopo che l'installazione è terminata, dovresti essere in grado di vedere la pagina web predefinita di Apache navigando all'indirizzo IP del Raspberry.

mceclip0.png

Ora è il momento di riavviare il Pi:

shutdown -r

Nel frattempo, imposteremo il port forwarding (temporaneo) verso il Pi.

2. Port forwarding

Per avere le porte 80 e 443 aperte verso internet. Di seguito trovi come fare i passaggi necessari

2.1 Cambiare la porta HTTPS dell'USG, ad esempio in 8443
Ora puoi accedere all'USG così: https://192.168.1.1:8443

2.2 Configurare il port forwarding per HTTP e HTTPS
Verifica se puoi accedere alla pagina di test del tuo Pi da internet

3. Creare ed esportare un certificato

Prima di poter ottenere un certificato Let's Encrypt, dobbiamo installare il componente aggiuntivo Let’s Encrypt per Apache. Questo aiuterà a certificare il tuo nome di dominio.

sudo apt install certbot python-certbot-apache --yes

3.2 Generare il primo certificato

Ora genereremo il primo certificato:

sudo certbot --apache

Devi compilare il modulo in modo appropriato. Ti verrà chiesto se vuoi effettuare un reindirizzamento permanente.

mceclip1.png

 mceclip2.png

Il certificato sarà richiesto e installato automaticamente sul server Apache.

3.3 Esportare il certificato scaricandolo

Ora puoi esportare il certificato con un timestamp.

sudo openssl pkcs12 -export -out /tmp/myusg_"$(date +"%Y-%m-%d")".p12 -inkey /etc/letsencrypt/live/[your_domain]/privkey.pem -in /etc/letsencrypt/live/[your_domain]/cert.pem

Devi inserire una password. Assicurati di ricordarla, ti servirà anche per l'importazione nell'USG.

mceclip3.png

Per ottenere il certificato dal Pi, dobbiamo modificare i permessi del file myusg_[date].p12.

sudo chmod 777 myusg[date].p12

Ora puoi prendere il file con WinSCP dalla cartella /tmp.

4. Importare il certificato nell'USG

4.1 Scaricare e importare i certificati root e intermedi di Let's Encrypt

Per far sì che l'USG si fidi del certificato che abbiamo esportato prima, dobbiamo importare i certificati root e intermedi di Let's Encrypt:

https://letsencrypt.org/certificates/

Assicurati che i certificati siano salvati come file pem (ad esempio letsencryptauthorityx3.pem).

Ora sull'USG, vai su Configurazione > Oggetti > Certificati > Certificati attendibili e importa i certificati root e intermedi.

4.2 Importare e attivare il tuo certificato

Sull'USG vai su Configurazione > Oggetti > Certificati > I miei certificati e importa il certificato (devi inserire anche la password)

Vai su Configurazione > Sistema > WWW sotto Certificato server ora puoi scegliere il certificato importato.

5. Configurare correttamente il reindirizzamento da HTTP a HTTPS

5.1 Disattivare il NAT per il Pi

Per liberare le porte 80 e 443 per l'USG, devi disattivare il NAT per il Pi. Vai su Configurazione > Rete > NAT e trova e disattiva le regole responsabili del NAT. Per favore, non cancellare le regole, perché ti serviranno di nuovo più tardi.

5.2 Riportare la porta HTTPS dell'USG a 443 e configurare il reindirizzamento da HTTP a HTTPS

Vai su Configurazione > Sistema > WWW e imposta la porta HTTPS di nuovo a 443. Assicurati che il reindirizzamento HTTP sia abilitato.

5.3 Eliminare l'indirizzo IP

Ora l'USG utilizzerà il certificato importato. Il "problema" rimasto è che l'USG reindirizzerà da HTTP a HTTPS così:

https://192.168.1.1/redirect.cgi?arip=[your_dyndns]&original_url=http://[your_dyndns]/

mceclip4.png

Questo, ovviamente, creerà un problema di certificato. Per eliminare definitivamente questo messaggio, devi aprire una sessione SSH sul tuo USG e inserire questi comandi:

Router> configure terminal
Router(config)# web-auth redirect-fqdn [your_domainname]
Router(config)# write
Router(config)# exit
Router> write

Ora il reindirizzamento apparirà così:

https://[your_domain]/redirect.cgi?arip=[your_domain]&original_url=http://[your_domain]/

mceclip5.png

 Congratulazioni, ora hai un certificato Let's Encrypt funzionante sul tuo USG.

Rinnovare il certificato

I certificati Let's Encrypt sono validi per 90 giorni. Questo significa che devi rinnovare il certificato ogni tre mesi. 

1. Riaprire le porte HTTP e HTTPS verso il Pi

a ) cambia di nuovo le porte HTTPS dell'USG (Punto 2.1)
b ) Riattiva il NAT per HTTP/HTTPS verso il Pi (Punto 2.2)

2. Collegarsi via SSH al Pi e rinnovare il certificato

Apri una sessione SSH sul tuo Pi e inserisci questo comando

sudo certbot renew

Questo rinnoverà il certificato per altri 90 giorni

3. Esportare e importare il certificato

Ora devi seguire i passaggi al punto 3.3

4. Aggiornare il certificato sull'USG

Ora procedi con il passo 4.2

5. Ripristinare le porte

Segui i passaggi in 5.1 e 5.2

Congratulazioni, hai ora rinnovato il certificato Let's Encrypt sul tuo USG.

Disclaimer: Si prega di comprendere che questa è solo una descrizione su come avere un certificato Let's Encrypt sul tuo USG. Se qualcosa va storto con il Raspberry Pi, ti preghiamo di capire che non possiamo fornire supporto per eventuali problemi relativi al Pi!

Articoli in questa sezione

Questo articolo ti è stato utile?
Utenti che ritengono sia utile: 0 su 3
Condividi

Commenti

0 commenti

Accedi per aggiungere un commento.