Installazione e Configurazione della Certification Authority in Ubuntu Server 22.04

by | Giu 7, 2023

 

Un’autorità di certificazione (CA o Certification Authority) è un’entità responsabile dell’emissione di certificati digitali per verificare le identità su Internet. Sebbene le CA pubbliche siano una scelta popolare per verificare l’identità dei siti Web e di altri servizi forniti al pubblico, le CA private vengono in genere utilizzate per gruppi chiusi e servizi privati.

La creazione di un’autorità di certificazione privata consente di configurare, testare ed eseguire programmi che richiedono connessioni crittografate tra un client e un server. Con una CA privata, è possibile emettere certificati per utenti, server o singoli programmi e servizi all’interno dell’infrastruttura.

PREREQUISITI

Per completare questo tutorial, è necessario accedere a un server Ubuntu 22.04 per ospitare il server CA. Sarà necessario configurare un utente non root con privilegi prima di iniziare questa guida

INSTALLAZIONE DI EASY-RSA

La prima cosa da fare è installare il set di script sul server CA.

Questo è uno strumento di gestione dell’autorità di certificazione che verrà utilizzato per generare una chiave privata e un certificato radice pubblico, che verrà quindi utilizzato per firmare le richieste provenienti da client e server che si baseranno sulla CA.

Accedere al server CA come utente sudo non root ed eseguire i seguenti comandi:

CREAZIONE DIRECTORY PER INFRASTRUTTURA A CHIAVE PUBBLICA

Dopo aver installato, è il momento di creare un’infrastruttura a chiave pubblica (PKI) di tipo sul server CA.

Assicurarsi di aver effettuato l’accesso come utente non root e creare una directory.

NOTA BENE: Assicurarsi di non utilizzare sudo per eseguire nessuno dei seguenti comandi, poiché l’utente normale deve gestire e interagire con la CA senza privilegi elevati

Creare la cartella chiamata easy-rsa nella root con il comando:

Creare quindi i collegamenti simbolici con il comando:

Per limitare l’accesso alla nuova directory PKI, assicurarsi che solo il proprietario possa accedervi utilizzando il comando:

NOTA BENE: al posto di UTENTE inserire l’utenza utilizzata

Infine, inizializzare l’infrastruttura PKI all’interno della directory con i comandi:

Se è andato tutto a buon fine dovremmo visualizzare il seguente output:

CREAZIONE DELLA CERTIFICATION AUTORITY

Prima di poter creare la chiave privata e il certificato della CA, è necessario creare e popolare un file chiamato con alcuni valori predefiniti.
Per prima cosa entrare nella directory, quindi creare e modifichare il file con i seguenti comandi:

Una volta aperto il file, incollare le righe seguenti e modificare ogni valore evidenziato in modo che rifletta le informazioni sull’organizzazione.
La cosa importante è non lasciare campi vuoti:

ATTENZIONE: modificare tutti i parametri tranne EASYRSA_ALGO e EASYRSA_DIGEST

Salvare e chiudere il file di configurazione

Per creare la coppia di chiavi pubblica e privata root per l’autorità di certificazione, eseguire nuovamente il comando:

Nell’output, vedrai alcune righe sulla versione di OpenSSL e ti verrà richiesto di inserire una passphrase per la tua coppia di chiavi.

Assicurarsi di scegliere una passphrase forte e di annotarla in un posto sicuro.

Sarà necessario immettere la passphrase ogni volta che è necessario interagire con la CA, ad esempio per firmare o revocare un certificato.

Inserire la passphrase quindi premere Invio

Reinserire quindi la Passphrase e premere Invio

Se è tutto OK dovremmo vedere il srguente Output

Premere Invio

Se è andato tutto a buon fine dovremmo vedere il seguente Output

ATTENZIONE: se non si desidera che venga richiesta la password ogni volta che si interagisce con la CA eseguire il comando:

A questo punto abbiamo due file importanti che costituiscono i componenti pubblico e privato di un’autorità di certificazione.

ca.crt è il file di certificato pubblico della CA e si trova nel path ~/easy-rsa/pki/ca.crt. Utenti, server e client utilizzeranno questo certificato per verificare di far parte della stessa rete di attendibilità. Ogni utente e server che utilizza la CA dovrà disporre di una copia di questo file. Tutte le parti faranno affidamento sul certificato pubblico per garantire che qualcuno non stia impersonando un sistema ed eseguendo un attacco Man-in-the-middle.

ca.key è la chiave privata utilizzata dalla CA per firmare i certificati per server e client si trova nel path ~/easy-rsa/pki/private/ca.key. Se un utente malintenzionato ottiene l’accesso alla CA e, a sua volta, al file, sarà necessario distruggere la CA. Questo è il motivo per cui il file dovrebbe trovarsi solo sul computer CA e che, idealmente, il computer CA dovrebbe essere mantenuto offline quando non firma le richieste di certificato come misura di sicurezza aggiuntiva

DISTRIBUZIONE DEL CERTIFICATO PUBBLICO DELLA CERTIFICATION AUTHORITY

Ora la CA è configurata e pronta per tutti i sistemi che si desidera configurare per utilizzarla.

Per importare il certificato pubblico della CA in un secondo sistema Linux, ad esempio un altro server o un computer locale, ottenere innanzitutto una copia del file dal server CA.

È possibile utilizzare il comando per emetterlo in un terminale, quindi copiarlo e incollarlo in un file sul secondo computer che sta importando il certificato.

In questo esempio useremo un semplice copia e incolla

Come utente non root sul server CA, eseguire il comando:

A questo punto copiare tutte le righe da —–BEGIN CERTIFICATE—– a —–END CERTIFICATE—–

Sull’altro sistema linux eseguire il comando:

Quindi incollare l’Output copiato in precedenza

Per importare il certificato su Sistemi Debian e Ubuntu eseguire i comandi:

Per importare il certificato su Sistemi CentOS e RedHat eseguire i comandi:

Dopo aver importato il certificato il secondo Linux considererà attendibile qualsiasi certificato che è stato firmato dal server CA.

Per importare il certificato in un sistema Windows creare un file denominato CA.crt

Editare quindi il file con un notepad

Incollare l’Output copiato in precedenza da a —–BEGIN CERTIFICATE—– a —–END CERTIFICATE—–

Quindi salvare e chiudere il file

Fare doppio click sul Certificato

Cliccare Install Certificate…

Selezionare Local Machine per installare il Certificato a livello macchina quindi cliccare Next

Cliccare Next

Cliccare Finish per terminare l’importazione

Cliccare OK

Per verificare che l’importanzione sia andata a buon fine aprire una cosnole con lo snap-in dei Certificati quindi verificare che nei Trusted Root ci sia il certificato importato come mostrato nell’immagine sovrastante.

CREAZIONE E FIRMA DI UNA RICHIESTA DI CERTIFICATO

Una richiesta di firma del certificato (CSR) è costituita da tre parti: una chiave pubblica, informazioni identificative sul sistema richiedente, e una firma della richiesta stessa, che viene creata utilizzando la chiave privata della parte richiedente. La chiave privata verrà mantenuta segreta e verrà utilizzata per crittografare le informazioni che chiunque disponga del certificato pubblico firmato può quindi decrittografare.

I seguenti passaggi verranno eseguiti sul secondo sistema Ubuntu, Debian o Windows Server. Può essere un altro server remoto o una macchina Linux locale come un laptop o un computer desktop.

CREAZIONE DI UNA CSR SU SERVER UBUNTU

Collegarsi in SSH al server dove si intende generare la CSR quindi eseguire i seguenti comandi:

NOTA BENE: nella maggior parte dei sistemi Linux Openssl viene installato in fase di installazione del server

Il primo passaggio per creare una CSR è generare una chiave privata. Per creare una chiave privata creare una directory e quindi generare una chiave al suo interno con i seguenti comandi:

Ora che si dispone di una chiave privata è possibile creare una CSR sempre utilizzando l’utility Openssl.
Verrà richiesto di compilare una serie di campi come Paese, Stato e Città.

Eseguire il comando:

Dovremmo vedere il seguente Output

ATTENZIONE: sostituire al posto di NOME_FQDN_DEL_SERVER il nome FQDN del server dove si sta generando la CSR e al posto di [email protected] la mail corretta

Per verificare il contenuto di una CSR, è possibile leggere in un file di richiesta ed esaminare i campi all’interno con il comando:

Dovremmo vedere il seguente output:

Una volta terminato la generazione della CSR copiarla sul CA Server con il seguente comando:

Inserire quindi la password dell’utente del CA Server

FIRMA DELLA CSR

Per procedere alla firma della CSR copiata precedentemente collegarsi al CA Server quindi eseguire i comandi:

Se è andato tutto a buon fine dovremmo vedere il seguente output:

Ora è possibile firmare la richiesta eseguendo lo script con il seguente comando:

Dovremmo vedere il seguente Output:

Digitare YES per procedere quindi premere Invio

Inserire quindi la Passphrase del server CA definita in precedenza quindi Invio

Se è andato tutto a buon fine dovremmo vedere il seguente Output:

Una volta completati questi passaggi abbiamo firmato la CSR utilizzando la chiave privata del server CA.

Il file risultante contiene la chiave di crittografia pubblica del server, nonché una nuova firma dal server CA.

Lo scopo della firma è quello di dire a chiunque si fidi della CA che anche loro possono considerare attendibile il certificato

L’ultimo passaggio sul server CA sarebbe quello di distribuire i nuovi file e dal server CA al server remoto che ha effettuato la richiesta CSR con i comandi:

NOTA BENE: al posto di USER_SERVER_UBUNTU inserire l’utenza del Server Ubuntu e al posto di UBUNTU_SERVER_IP_ADDRESS l’indirizzo IP del server Ubuntu

A questo punto potremo usare il certificato per un Server Web o per un qualsiasi tipo di autenticazione.

REVOCA DEL CERTIFICATO

Per la revoca del certificato posizionarsi nella cartella easy-rsa con il comando:

Quindi, eseguire lo script con l’opzione, seguita dal nome del client che si desidera revocare. Seguendo l’esempio pratico riportato sopra, il nome comune del certificato è ubuntu-server

Eseguire il comando:

Confermare la richiesta quindi premere YES

per verificare la lista dei certificati revocati eseguire il comando:

Scritto da Raffaele Chiatto

Sono Raffaele Chiatto, un appassionato di informatica a 360 gradi.
Tutto è iniziato nel 1996, quando ho scoperto il mondo dell'informatica grazie a Windows 95, e da quel momento non ho più smesso di esplorare e imparare.
Ogni giorno mi dedico con curiosità e passione a scoprire le nuove frontiere di questo settore in continua evoluzione.

Articoli Recenti

Veeam Backup

Monitoring

Friends

  • My English Lab  English School
  • ChrSystem   Infrastrutture IT
  • ACT For Cange  Mental Coach
  • Since 01  Kreative Graphics

Database

Networking

Autori

  • Raffaele Chiatto  Amministratore
  • Marco Valle  Autore Collaboratore

Related Post

0 Comments

Submit a Comment

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Virtualizzazione

Linux

Microsoft

Apple

Backup

Database

Security

Automazione