Questo documento spiega come ottenere un certificato Let's Encrypt, installarlo in Cisco Business Dashboard e configurare il rinnovo automatico utilizzando l'interfaccia della riga di comando (CLI). Per informazioni generali sulla gestione dei certificati, vedere l'articolo Gestione dei certificati in Cisco Business Dashboard.
Let's Encrypt è un'autorità di certificazione che fornisce gratuitamente certificati DV (Domain Validation) Secure Sockets Layer (SSL) al pubblico tramite un processo automatizzato. Let's Encrypt fornisce un meccanismo facilmente accessibile per ottenere certificati firmati per i server Web, dando all'utente finale la certezza di accedere al servizio corretto. Per ulteriori informazioni, visitare il sito Web Let's Encrypt.
L'utilizzo dei certificati Let's Encrypt con Cisco Business Dashboard è abbastanza semplice. Sebbene Cisco Business Dashboard preveda alcuni requisiti speciali per l'installazione dei certificati, oltre a rendere il certificato disponibile per il server Web, è comunque possibile automatizzare il rilascio e l'installazione del certificato utilizzando gli strumenti della riga di comando forniti. La parte restante di questo documento descrive il processo di rilascio di un certificato e di automazione del rinnovo del certificato.
In questo documento vengono utilizzate le sfide HTTP per convalidare la proprietà del dominio. È quindi necessario che il server Web del dashboard sia raggiungibile da Internet tramite le porte standard TCP/80 e TCP/443. Se il server Web non è raggiungibile da Internet, è consigliabile utilizzare le sfide DNS. Per ulteriori informazioni, vedere Utilizzo di Let's Encrypt per Cisco Business Dashboard con DNS.
Il primo passaggio consiste nell'ottenere un software che utilizzi il certificato del protocollo ACME. In questo esempio viene utilizzato il client certbot, ma sono disponibili molte altre opzioni.
Per consentire l'automazione del rinnovo del certificato, è necessario installare il client certbot nel dashboard. Per installare il client certbot nel server dashboard, utilizzare i comandi seguenti:
È importante notare che in questo articolo, le sezioni blu sono prompt e output dalla CLI. Il testo bianco elenca i comandi. I comandi di colore verde, inclusi dashboard.example.com, pnpserver.example.com e user@example.com, devono essere sostituiti con nomi DNS appropriati per l'ambiente in uso.
Successivamente, il server Web del dashboard deve essere configurato per ospitare i file di richiesta necessari per verificare la proprietà del nome host. A tale scopo, viene creata una directory per questi file e viene aggiornato il file di configurazione del server Web. Quindi si riavvia l'applicazione Dashboard per rendere effettive le modifiche. Utilizzare i seguenti comandi:
cbd:~$sudo mkdir /usr/lib/ciscobusiness/dashboard/www/letsencrypt cbd:~$sudo chmod 755 /usr/lib/ciscobusiness/dashboard/www/letsencrypt cbd:~$sudo bash -c 'cat > /var/lib/ciscobusiness/dashboard/nginx/nginx-loc-letsencrypt.conf' << EOFRichiedere un certificato utilizzando il comando seguente:
cbd:~$sudo certbot certonly —webroot -w /usr/lib/ciscobusiness/dashboard/www/letsencrypt/ -d dashboard.example.com -d pnpserver.example.com —deploy-hook "cat /etc/letsencrypt/live/dashboard.example.com/fullchain.pem /etc/ssl/certs/DST_Root_CA_X3.pem > /tmp/cbdchain.pem; /usr/bin/cisco-business-dashboard import -t pem -k /etc/letsencrypt/live/dashboard.example.com/privkey.pem -c /tmp/cbdchain.pemQuesto comando indica al servizio Let's Encrypt di convalidare la proprietà dei nomi host forniti connettendosi al servizio Web ospitato su ciascuno dei nomi. Ciò significa che il servizio Web del dashboard deve essere accessibile da Internet e deve essere ospitato sulle porte 80 e 443. L'accesso all'applicazione del dashboard può essere limitato utilizzando le impostazioni del controllo di accesso nella pagina Sistema > Impostazioni piattaforma > Server Web nell'interfaccia utente di amministrazione del dashboard. Per ulteriori informazioni, consultare la Cisco Business Dashboard Administration Guide.
I parametri del comando sono necessari per i motivi seguenti:
certonly | Richiedere un certificato e scaricare i file. Non tentare di installarli. Nel caso di Cisco Business Dashboard, il certificato viene utilizzato non solo dal server Web, ma anche dal servizio PnP e da altre funzioni. Di conseguenza, il client certbot non è in grado di installare il certificato automaticamente. |
—webroot -w ... | Installare i file di verifica nella directory creata in precedenza in modo che sia possibile accedervi tramite il server Web del dashboard. |
-d dashboard.example.com -d pnpserver.example.com |
FQDN da includere nel certificato. Il nome indicato verrà incluso nel campo Nome comune del certificato e tutti i nomi verranno elencati nel campo Nome-Alt-Soggetto. Il nome pnpserver.<dominio> è un nome speciale utilizzato dalla funzionalità Plug and Play di rete quando si esegue l'individuazione DNS. Per ulteriori informazioni, consultare la Cisco Business Dashboard Administration Guide. |
—deploy-hook "..." | Utilizzare l'utilità da riga di comando cisco-business-dashboard per acquisire la chiave privata e la catena di certificati ricevuti dal servizio Let's Encrypt e caricarli nell'applicazione dashboard nello stesso modo in cui i file sono stati caricati tramite l'interfaccia utente (UI) del dashboard. Anche il certificato radice che ancora la catena di certificati viene aggiunto al file del certificato. Questa operazione è richiesta da alcune piattaforme distribuite mediante Network Plug and Play. |
Eseguire il processo di creazione del certificato seguendo le istruzioni generate dal client certbot:
cbd:~$sudo certbot certonly —webroot -w /usr/lib/ciscobusiness/dashboard/www/letsencrypt/ -d dashboard.example.com -d pnpserver.example.com —deploy-hook "cat /etc/letsencrypt/live/dashboard.example.com/fullchain.pem /etc/ssl/certs/DST_Root_CA_X3.pem > /tmp/cbdchain.pem; /usr/bin/cisco-business-dashboard import -t pem -k /etc/letsencrypt/live/dashboard.example.com/privkey.pem -c /tmp/cbdchain.pem"Immettere l'indirizzo e-mail o C per annullare.
Immetti l'indirizzo email (utilizzato per gli avvisi urgenti di rinnovo e sicurezza) (Immetti 'c' perImmettere A per accettare o C per annullare.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Immettere Y per Sì o N per No.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Il certificato è stato emesso e si trova nella sottodirectory /etc/letsencrypt/live nel file system:
Come ottenere un nuovo certificatoLa directory contenente i certificati dispone di autorizzazioni limitate, pertanto solo l'utente root può visualizzare i file. Il file privkey.pem, in particolare, è sensibile e l'accesso a questo file deve essere limitato al solo personale autorizzato.
Il dashboard dovrebbe essere in esecuzione con il nuovo certificato. Se si apre l'interfaccia utente del dashboard in un browser Web immettendo uno dei nomi specificati durante la creazione del certificato nella barra degli indirizzi, il browser Web dovrebbe indicare che la connessione è attendibile e sicura.
Notare che i certificati rilasciati da Let's Encrypt hanno una durata relativamente breve, attualmente 90 giorni. Il pacchetto certbot per Ubuntu Linux è configurato per controllare la validità del certificato due volte al giorno e rinnovare il certificato se sta per scadere, quindi non è necessario eseguire alcuna azione per mantenere il certificato aggiornato. Per verificare che i controlli periodici vengano eseguiti correttamente, attendere almeno dodici ore dalla creazione iniziale del certificato e quindi cercare nel file di log certbot messaggi simili ai seguenti: cbd:~$ coda sudo /var/log/letsencrypt/letsencrypt.log
2020-07-31 16:50:52,783:DEBUG:certbot.main:certbot versione: 0.31.0
2020-07-31 16:50:52,784:DEBUG:certbot.main:Argomenti: ['-q']
2020-07-31 16:50:52,785:DEBUG:certbot.main:Plugin individuati:
(PluginEntryPoint#manuale,
PluginEntryPoint#null,PluginEntryPoint#standalone,PluginEntryPoint#webroot)
2020-07-31 16:50:52,793:DEBUG:certbot.log:Livello di registrazione radice impostato su 30
2020-07-31 16:50:52,793:INFO:certbot.log:Salvataggio del log di debug su
/var/log/letsencrypt/letsencrypt.log
2020-07-31 16:50:52,802:DEBUG:certbot.plugins.selection:
Autenticatore richiesto <certbot.cli.
_Oggetto predefinito in 0x7f1152969240> e programma di installazione <certbot.cli.
_Oggetto predefinito in 0x7f1152969240>
2020-07-31 16:50:52,811:INFO:certbot.RENEW:Cert non ancora dovuto per il rinnovo
2020-07-31 16:50:52,812:DEBUG:certbot.plugins.selection:Autenticatore richiesto
webroot e installatore Nessuno
2020-07-31 16:50:52,812:DEBUG:certbot.rinnovo:nessun errore di rinnovo
Trascorso il tempo necessario affinché la data di scadenza del certificato sia compresa entro trenta giorni, il client certbot rinnoverà il certificato e applicherà automaticamente il certificato aggiornato all'applicazione dashboard.
Per ulteriori informazioni sull'utilizzo del client certbot, consultare la pagina della documentazione di certbot.