Ricerca nel sito web

Come impostare e configurare un'autorità di certificazione (CA) su Debian 11


introduzione

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

La creazione di un'autorità di certificazione privata ti consentirà di configurare, testare ed eseguire programmi che richiedono connessioni crittografate tra un client e un server. Con una CA privata, puoi emettere certificati per utenti, server o singoli programmi e servizi all'interno della tua infrastruttura.

Alcuni esempi di programmi su Linux che utilizzano la propria CA privata sono Puppet . Puoi anche configurare il tuo server Web per utilizzare i certificati emessi da una CA privata per fare in modo che gli ambienti di sviluppo e staging corrispondano ai server di produzione che utilizzano TLS per crittografare le connessioni.

In questa guida, configurerai un'autorità di certificazione privata su un server Debian 11 e genererai e firmerai un certificato di test utilizzando la tua nuova CA. Importerai anche il certificato pubblico del server CA nell'archivio certificati del tuo sistema operativo in modo da poter verificare la catena di fiducia tra la CA e i server o gli utenti remoti. Infine, revocherai un certificato e distribuirai un elenco di revoche di certificati (CRL) per assicurarti che solo gli utenti e i sistemi autorizzati possano utilizzare i servizi che si basano sulla tua CA.

Prerequisiti

Per completare questo tutorial, avrai bisogno di:

  • Un server Debian 11 come server CA dedicato. Verrà utilizzato solo per importare, firmare e revocare le richieste di certificato. Non utilizzare un server preesistente che ospita servizi pubblici. Idealmente, il tuo server CA dovrebbe essere spento o offline quando non è in uso, in modo che la sua chiave privata non sia così vulnerabile alla compromissione.
  • Un utente non root con privilegi sudo. Segui la nostra guida all'installazione iniziale del server Debian 11 per configurarlo. Il tutorial collegato imposterà anche un firewall, che si presume sia presente in questa guida.

Nota: l'ultima sezione di questo tutorial è facoltativa se desideri informazioni sulla firma e sulla revoca dei certificati. Se scegli di completare questi passaggi pratici, avrai bisogno di un secondo server Debian 11, oppure puoi anche utilizzare il tuo computer Linux locale che esegue Debian o Ubuntu o distribuzioni derivate da uno di questi.

Passaggio 1: installazione di Easy-RSA

La prima attività in questo tutorial è installare l'utilità easy-rsa sul server CA. Easy-RSA è uno strumento di gestione dell'autorità di certificazione che utilizzerai per generare una chiave privata e un certificato radice pubblico, che utilizzerai quindi per firmare le richieste da client e server che si affideranno alla tua CA.

Accedi al tuo server CA come utente sudo non root che hai creato durante i passaggi iniziali della configurazione ed esegui quanto segue:

  1. sudo apt update
  2. sudo apt install easy-rsa

Verrà richiesto di scaricare il pacchetto e installarlo. Premi y per confermare che desideri installare il pacchetto.

A questo punto hai tutto ciò che ti serve configurato e pronto per usare Easy-RSA. Nella fase successiva creerai un'infrastruttura a chiave pubblica, quindi inizierai a creare la tua autorità di certificazione.

Passaggio 2: preparazione di una directory dell'infrastruttura a chiave pubblica

Ora che hai installato easy-rsa, è il momento di creare un'infrastruttura a chiave pubblica (PKI) scheletrica sul server CA. Assicurati di essere ancora connesso come utente non root e crea una directory easy-rsa. Assicurati di non utilizzare sudo per eseguire nessuno dei seguenti comandi, poiché il tuo utente normale dovrebbe gestire e interagire con la CA senza privilegi elevati.

  1. mkdir ~/easy-rsa

Questo creerà una nuova directory chiamata easy-rsa nella tua cartella home. Useremo questa directory per creare collegamenti simbolici che puntano ai file del pacchetto easy-rsa che abbiamo installato nel passaggio precedente. Questi file si trovano nella cartella /usr/share/easy-rsa sul server CA.

Crea i collegamenti simbolici con il comando ln:

  1. ln -s /usr/share/easy-rsa/* ~/easy-rsa/

Nota: Mentre altre guide potrebbero istruirti a copiare i file del pacchetto easy-rsa nella tua directory PKI, questo tutorial adotta un approccio di collegamento simbolico. Di conseguenza, qualsiasi aggiornamento al pacchetto easy-rsa si rifletterà automaticamente negli script della tua PKI.

Per limitare l'accesso alla tua nuova directory PKI, assicurati che solo il proprietario possa accedervi utilizzando il comando chmod:

  1. chmod 700 /home/sammy/easy-rsa

Infine, inizializza la PKI all'interno della directory easy-rsa:

  1. cd ~/easy-rsa
  2. ./easyrsa init-pki
Output
init-pki complete; you may now create a CA or requests. Your newly created PKI dir is: /home/sammy/easy-rsa/pki

Dopo aver completato questa sezione, si dispone di una directory che contiene tutti i file necessari per creare un'autorità di certificazione. Nella sezione successiva creerai la chiave privata e il certificato pubblico per la tua CA.

Passaggio 3: creazione di un'autorità di certificazione

Prima di poter creare la chiave privata e il certificato della tua CA, devi creare e popolare un file chiamato vars con alcuni valori predefiniti. Per prima cosa cd nella directory easy-rsa, quindi creerai e modificherai il file vars con nano o il tuo editor di testo preferito:

  1. cd ~/easy-rsa
  2. nano vars

Una volta aperto il file, incolla le seguenti righe e modifica ciascun valore evidenziato per riflettere le informazioni sulla tua organizzazione. La parte importante qui è assicurarsi di non lasciare nessuno dei valori vuoti:

~/easy-rsa/vars
set_var EASYRSA_REQ_COUNTRY "US" set_var EASYRSA_REQ_PROVINCE "NewYork" set_var EASYRSA_REQ_CITY "New York City" set_var EASYRSA_REQ_ORG "DigitalOcean" set_var EASYRSA_REQ_EMAIL "admin@example.com" set_var EASYRSA_REQ_OU "Community" set_var EASYRSA_ALGO "ec" set_var EASYRSA_DIGEST "sha512"

Quando hai finito, salva e chiudi il file. Se stai usando nano, puoi farlo premendo CTRL+X, quindi Y e INVIO per confermare. Ora sei pronto per costruire la tua CA.

Per creare la coppia di chiavi pubblica e privata root per la tua autorità di certificazione, esegui di nuovo il comando ./easy-rsa, questa volta con l'opzione build-ca:

  1. ./easyrsa build-ca

Nell'output, vedrai alcune righe sulla versione OpenSSL e ti verrà chiesto di inserire una passphrase per la tua coppia di chiavi. Assicurati di scegliere una passphrase forte e annotala in un posto sicuro. Dovrai inserire la passphrase ogni volta che devi interagire con la tua CA, ad esempio per firmare o revocare un certificato.

Ti verrà inoltre chiesto di confermare il nome comune (CN) per la tua CA. Il CN è il nome utilizzato per fare riferimento a questa macchina nel contesto dell'autorità di certificazione. È possibile inserire qualsiasi stringa di caratteri per il nome comune della CA, ma per semplicità, premere INVIO per accettare il nome predefinito.

Output
. . . Enter New CA Key Passphrase: Re-Enter New CA Key Passphrase: . . . Common Name (eg: your user, host, or server name) [Easy-RSA CA]: CA creation complete and you may now import and sign cert requests. Your new CA certificate file for publishing is at: /home/sammy/easy-rsa/pki/ca.crt

Nota: se non vuoi che ti venga chiesta una password ogni volta che interagisci con la tua CA, puoi eseguire il comando build-ca con l'opzione nopass, come Questo:

  1. ./easyrsa build-ca nopass

Ora hai due file importanti — ~/easy-rsa/pki/ca.crt e ~/easy-rsa/pki/private/ca.key — che compongono le componenti pubbliche e private di una Certificate Authority.

  • ca.crt è il file del certificato pubblico della CA. Utenti, server e client utilizzeranno questo certificato per verificare che fanno parte della stessa rete di fiducia. Ogni utente e server che utilizza la tua CA dovrà disporre di una copia di questo file. Tutte le parti si affideranno al certificato pubblico per assicurarsi che qualcuno non stia impersonando un sistema e non stia eseguendo un attacco Man-in-the-middle.
  • ca.key è la chiave privata utilizzata dalla CA per firmare i certificati per server e client. Se un utente malintenzionato ottiene l'accesso alla tua CA e, a sua volta, al tuo file ca.key, dovrai distruggere la tua CA. Questo è il motivo per cui il tuo file ca.key dovrebbe essere solo sulla tua macchina CA e perché, idealmente, la tua macchina CA dovrebbe essere tenuta offline quando non firmi le richieste di certificato come misura di sicurezza aggiuntiva.

Con ciò, la tua CA è pronta per essere utilizzata per firmare richieste di certificato e revocare certificati.

Passaggio 4: distribuzione del certificato pubblico dell'autorità di certificazione

Ora la tua CA è configurata e pronta per fungere da root of trust per tutti i sistemi che desideri configurare per utilizzarla. Puoi aggiungere il certificato della CA ai tuoi server OpenVPN, server Web, server di posta e così via. Qualsiasi utente o server che deve verificare l'identità di un altro utente o server nella tua rete dovrebbe avere una copia del file ca.crt importato nell'archivio certificati del proprio sistema operativo.

Per importare il certificato pubblico della CA in un secondo sistema Linux come un altro server o un computer locale, procurati prima una copia del file ca.crt dal tuo server CA. Puoi utilizzare il comando cat per emetterlo in un terminale, quindi copiarlo e incollarlo in un file sul secondo computer che sta importando il certificato. Puoi anche usare uno strumento come scp o rsync per trasferire il file tra i sistemi. Useremo copia e incolla con nano in questo passaggio poiché funzionerà su tutti i sistemi.

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

  1. cat ~/easy-rsa/pki/ca.crt

Ci sarà un output nel tuo terminale simile al seguente:

Output
-----BEGIN CERTIFICATE----- MIIDSzCCAjOgAwIBAgIUcR9Crsv3FBEujrPZnZnU4nSb5TMwDQYJKoZIhvcNAQEL BQAwFjEUMBIGA1UEAwwLRWFzeS1SU0EgQ0EwHhcNMjAwMzE4MDMxNjI2WhcNMzAw . . . . . . -----END CERTIFICATE-----

Copia tutto, comprese le righe -----BEGIN CERTIFICATE----- e -----END CERTIFICATE----- e i trattini.

Sul tuo secondo sistema Linux usa nano o il tuo editor di testo preferito per aprire un file chiamato /tmp/ca.crt:

  1. nano /tmp/ca.crt

Incollare nell'editor i contenuti appena copiati dal server CA. Quando hai finito, salva e chiudi il file. Se stai usando nano, puoi farlo premendo CTRL+X, quindi Y e ENTER per confermare .

Ora che hai una copia del file ca.crt sul tuo secondo sistema Linux, è il momento di importare il certificato nell'archivio certificati del suo sistema operativo.

Sui sistemi basati su Debian e Ubuntu, esegui i seguenti comandi per importare il certificato:

  1. sudo cp /tmp/ca.crt /usr/local/share/ca-certificates/
  2. sudo update-ca-certificates

Lo script update-ca-certificates, che si trova in /usr/sbin/update-ca-certificates sui successivi sistemi Debian e Ubuntu, potrebbe non essere nel dell'utente PERCORSO. Aggiungi /usr/sbin al tuo PATH o semplicemente esegui /usr/sbin/update-ca-certificates.

Per importare il certificato del server CA su un sistema basato su CentOS, Fedora o RedHat, copiare e incollare il contenuto del file nel sistema proprio come nell'esempio precedente in un file chiamato /tmp/ca.crt . Successivamente, copierai il certificato in /etc/pki/ca-trust/source/anchors/, quindi eseguirai il comando update-ca-trust.

  1. sudo cp /tmp/ca.crt /etc/pki/ca-trust/source/anchors/
  2. sudo update-ca-trust

Ora il tuo secondo sistema Linux si fiderà di qualsiasi certificato firmato dal server CA.

Nota: se stai utilizzando la tua CA con i server Web e usi Firefox come browser, dovrai importare il certificato pubblico ca.crt direttamente in Firefox. Firefox non utilizza l'archivio certificati del sistema operativo locale. Per i dettagli su come aggiungere il certificato della tua CA a Firefox, consulta questo articolo di supporto di Mozilla sulla configurazione delle autorità di certificazione (CA) in Firefox.

Se stai utilizzando la tua CA per l'integrazione con un ambiente Windows o computer desktop, consulta la documentazione su come utilizzare certutil.exe per installare un certificato CA.

Se stai usando questo tutorial come prerequisito per un altro tutorial o hai familiarità con come firmare e revocare i certificati, puoi fermarti qui. Se desideri saperne di più su come firmare e revocare i certificati, la seguente sezione facoltativa spiegherà ogni processo in dettaglio.

Passaggio 5: creazione di richieste di firma del certificato e revoca dei certificati (facoltativo)

Le seguenti sezioni dell'esercitazione sono facoltative. Se hai completato tutti i passaggi precedenti, disponi di un'autorità di certificazione completamente configurata e funzionante che puoi utilizzare come prerequisito per altri tutorial. Puoi importare il file ca.crt della tua CA e verificare i certificati nella tua rete che sono stati firmati dalla tua CA.

Se desideri esercitarti e saperne di più su come firmare le richieste di certificato e su come revocare i certificati, queste sezioni facoltative spiegheranno come funzionano entrambi i processi.

Passaggio 6: creazione e firma di una richiesta di certificato di pratica (facoltativo)

Ora che hai una CA pronta per l'uso, puoi esercitarti a generare una chiave privata e una richiesta di certificato per acquisire familiarità con il processo di firma e distribuzione.

Una Certificate Signing Request (CSR) si compone di tre parti: una chiave pubblica, le informazioni identificative del sistema richiedente, e una firma della richiesta stessa, che viene creata utilizzando la chiave privata del richiedente. La chiave privata verrà tenuta segreta e verrà utilizzata per crittografare le informazioni che chiunque abbia il certificato pubblico firmato potrà quindi decrittografare.

I seguenti passaggi verranno eseguiti sul tuo secondo sistema Linux che esegue Debian, Ubuntu o una distribuzione derivata da uno di questi. Può essere un altro server remoto o una macchina Linux locale come un laptop o un computer desktop. Poiché easy-rsa non è disponibile per impostazione predefinita su tutti i sistemi, utilizzeremo lo strumento openssl per creare una chiave privata e un certificato di prova.

openssl è solitamente installato per impostazione predefinita sulla maggior parte delle distribuzioni Linux, ma per sicurezza, esegui quanto segue sul tuo sistema:

  1. sudo apt update
  2. sudo apt install openssl

Quando ti viene chiesto di installare openssl, premi y per continuare con i passaggi dell'installazione. Ciò potrebbe aggiornare le librerie OpenSSL e potrebbe essere richiesto di riavviare alcuni servizi che utilizzano la vecchia libreria OpenSSL. Selezionare OK per riavviare questi servizi, se lo si desidera.

Ora sei pronto per creare una pratica CSR con openssl.

Il primo passo che devi completare per creare una CSR è la generazione di una chiave privata. Per creare una chiave privata usando openssl, crea una directory practice-csr e poi genera una chiave al suo interno. Faremo questa richiesta per un server fittizio chiamato sammy-server, invece di creare un certificato utilizzato per identificare un utente o un'altra CA.

  1. mkdir ~/practice-csr
  2. cd ~/practice-csr
  3. openssl genrsa -out sammy-server.key
Output
Generating RSA private key, 2048 bit long modulus (2 primes) . . . . . . e is 65537 (0x010001)

Ora che hai una chiave privata puoi creare una CSR corrispondente, sempre usando l'utility openssl. Ti verrà richiesto di compilare una serie di campi come Paese, Stato e Città. Puoi inserire un . se desideri lasciare un campo vuoto, ma tieni presente che se si trattasse di un vero CSR, è meglio utilizzare i valori corretti per la tua posizione e organizzazione. Tuttavia, non lasciare vuoto il nome comune (CN), poiché questo campo è obbligatorio e la tua CA non sarà in grado di firmare il certificato senza di esso:

  1. openssl req -new -key sammy-server.key -out sammy-server.req
Output
. . . ----- Country Name (2 letter code) [XX]:US State or Province Name (full name) []:New York Locality Name (eg, city) [Default City]:New York City Organization Name (eg, company) [Default Company Ltd]:DigitalOcean Organizational Unit Name (eg, section) []:Community Common Name (eg, your name or your server's hostname) []:sammy-server Email Address []: Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []:

Se desideri aggiungere automaticamente questi valori come parte dell'invocazione di openssl anziché tramite il prompt interattivo, puoi passare l'argomento -subj a OpenSSL. Assicurati di modificare i valori evidenziati in modo che corrispondano alla sede della pratica, all'organizzazione e al nome del server:

  1. openssl req -new -key sammy-server.key -out server.req -subj \
  2. /C=US/ST=New\ York/L=New\ York\ City/O=DigitalOcean/OU=Community/CN=sammy-server

Per verificare il contenuto di una CSR, puoi leggere in un file di richiesta con openssl ed esaminare i campi all'interno:

  1. openssl req -in sammy-server.req -noout -subject
Output
subject=C = US, ST = New York, L = New York City, O = DigitalOcean, OU = Community, CN = sammy-server

Una volta che sei soddisfatto dell'oggetto della tua richiesta di certificato di pratica, copia il file sammy-server.req sul tuo server CA usando scp:

  1. scp sammy-server.req sammy@your_ca_server_ip:/tmp/sammy-server.req

In questo passaggio hai generato una richiesta di firma del certificato per un server fittizio chiamato sammy-server. In uno scenario reale, la richiesta potrebbe provenire da qualcosa come un server Web di staging o sviluppo che necessita di un certificato TLS per il test; oppure potrebbe provenire da un server OpenVPN che richiede un certificato in modo che gli utenti possano connettersi a una VPN. Nel passaggio successivo, procederemo alla firma della richiesta di firma del certificato utilizzando la chiave privata del server CA.

Passaggio 7 — Firma di un CSR (facoltativo)

Nel passaggio precedente, hai creato una richiesta di certificato pratica e una chiave per un server fittizio. L'hai copiato nella directory /tmp sul tuo server CA, emulando il processo che avresti utilizzato se avessi client o server reali che ti inviano richieste CSR che devono essere firmate.

Continuando con lo scenario fittizio, ora il server CA deve importare il certificato di pratica e firmarlo. Una volta che una richiesta di certificato è stata convalidata dalla CA e ritrasmessa a un server, anche i client che si fidano dell'autorità di certificazione saranno in grado di fidarsi del certificato appena emesso.

Dal momento che opereremo all'interno della PKI della CA dove è disponibile l'utilità easy-rsa, i passaggi di firma utilizzeranno l'utilità easy-rsa per semplificare le cose, anziché usando openssl direttamente come abbiamo fatto nell'esempio precedente.

Il primo passaggio per firmare la CSR fittizia è importare la richiesta di certificato utilizzando lo script easy-rsa:

  1. cd ~/easy-rsa
  2. ./easyrsa import-req /tmp/sammy-server.req sammy-server
Output
. . . The request has been successfully imported with a short name of: sammy-server You may now use this name to perform signing operations on this request.

Ora puoi firmare la richiesta eseguendo lo script easyrsa con l'opzione sign-req, seguita dal tipo di richiesta e dal nome comune incluso nella CSR. Il tipo di richiesta può essere client, server o ca. Dato che ci stiamo esercitando con un certificato per un server fittizio, assicurati di utilizzare il tipo di richiesta server:

  1. ./easyrsa sign-req server sammy-server

Nell'output, ti verrà chiesto di verificare che la richiesta provenga da una fonte attendibile. Digita yes quindi premi INVIO per confermare:

Output
You are about to sign the following certificate. Please check over the details shown below for accuracy. Note that this request has not been cryptographically verified. Please be sure it came from a trusted source or that you have verified the request checksum with the sender. Request subject, to be signed as a server certificate for 3650 days: subject= commonName = sammy-server Type the word 'yes' to continue, or any other input to abort. Confirm request details: yes . . . Certificate created at: /home/sammy/easy-rsa/pki/issued/sammy-server.crt

Se hai crittografato la tua chiave CA, a questo punto ti verrà richiesta la password.

Una volta completati questi passaggi, hai firmato il CSR sammy-server.req utilizzando la chiave privata del server CA in /home/sammy/easy-rsa/pki/private/ca.key. Il file sammy-server.crt risultante contiene la chiave di crittografia pubblica del server di esercitazione, nonché una nuova firma dal server CA. Lo scopo della firma è dire a chiunque si fidi della CA che può fidarsi anche del certificato sammy-server.

Se questa richiesta fosse per un server reale come un server web o un server VPN, l'ultimo passo sul server CA sarebbe distribuire i nuovi sammy-server.crt e ca.crt file dal server CA al server remoto che ha effettuato la richiesta CSR:

  1. scp pki/issued/sammy-server.crt sammy@your_server_ip:/tmp
  2. scp pki/ca.crt sammy@your_server_ip:/tmp

A questo punto, sarai in grado di utilizzare il certificato emesso con qualcosa come un server Web, una VPN, uno strumento di gestione della configurazione, un sistema di database o per scopi di autenticazione del client.

Passaggio 8: revoca di un certificato (facoltativo)

Occasionalmente, potrebbe essere necessario revocare un certificato per impedirne l'utilizzo da parte di un utente o di un server. Forse il laptop di qualcuno è stato rubato, un server Web è stato compromesso o un dipendente o un appaltatore ha lasciato la tua organizzazione.

Per revocare un certificato, il processo generale segue questi passaggi:

  1. Revocare il certificato con il comando ./easyrsa revoke client_name.
  2. Genera un nuovo CRL con il comando ./easyrsa gen-crl.
  3. Trasferisci il file crl.pem aggiornato al server o ai server che fanno affidamento sulla tua CA e su quei sistemi copialo nella directory o nelle directory richieste per i programmi che vi fanno riferimento.
  4. Riavvia tutti i servizi che utilizzano la tua CA e il file CRL.

Puoi utilizzare questo processo per revocare qualsiasi certificato che hai emesso in precedenza in qualsiasi momento. Esamineremo ogni passaggio in dettaglio nelle sezioni seguenti, a partire dal comando revoke.

Revoca di un certificato

Per revocare un certificato, vai alla directory easy-rsa sul tuo server CA:

  1. cd ~/easy-rsa

Successivamente, esegui lo script easyrsa con l'opzione revoke, seguita dal nome del client che desideri revocare. Seguendo l'esempio pratico sopra, il nome comune del certificato è sammy-server:

  1. ./easyrsa revoke sammy-server

Questo ti chiederà di confermare la revoca inserendo yes:

Output
Please confirm you wish to revoke the certificate with the following subject: subject= commonName = sammy-server Type the word 'yes' to continue, or any other input to abort. Continue with revocation: yes . . . Revoking Certificate 8348B3F146A765581946040D5C4D590A . . .

Nota il valore evidenziato nella riga Revoking Certificate. Questo valore è il numero di serie univoco del certificato che viene revocato. Se desideri esaminare l'elenco delle revoche nell'ultimo passaggio di questa sezione per verificare che il certificato sia presente, avrai bisogno di questo valore.

Dopo aver confermato l'azione, la CA revocherà il certificato. Tuttavia, i sistemi remoti che si basano sulla CA non hanno modo di verificare se i certificati sono stati revocati. Utenti e server saranno ancora in grado di utilizzare il certificato fino a quando l'elenco di revoca dei certificati (CRL) della CA non verrà distribuito a tutti i sistemi che si basano sulla CA.

Nel passaggio successivo genererai un CRL o aggiornerai un file crl.pem esistente.

Generazione di un elenco di revoche di certificati

Ora che hai revocato un certificato, è importante aggiornare l'elenco dei certificati revocati sul tuo server CA. Una volta che avrai un elenco di revoche aggiornato, sarai in grado di dire quali utenti e sistemi hanno certificati validi nella tua CA.

Per generare un CRL, esegui il comando easy-rsa con l'opzione gen-crl mentre sei ancora all'interno della directory ~/easy-rsa:

  1. ./easyrsa gen-crl

Se hai utilizzato una passphrase durante la creazione del file ca.key, ti verrà chiesto di inserirla. Il comando gen-crl genererà un file chiamato crl.pem contenente l'elenco aggiornato dei certificati revocati per quella CA.

Successivamente dovrai trasferire il file crl.pem aggiornato a tutti i server e client che si affidano a questa CA ogni volta che esegui il comando gen-crl. In caso contrario, client e sistemi saranno comunque in grado di accedere ai servizi e ai sistemi che utilizzano la tua CA, poiché tali servizi devono conoscere lo stato di revoca del certificato.

Trasferimento di un elenco di revoche di certificati

Ora che hai generato un CRL sul tuo server CA, devi trasferirlo su sistemi remoti che si basano sulla tua CA. Per trasferire questo file sui tuoi server, puoi usare il comando scp.

Nota: questo tutorial spiega come generare e distribuire manualmente un CRL. Sebbene esistano metodi più affidabili e automatizzati per distribuire e controllare gli elenchi di revoche come OCSP-Stapling, la configurazione di tali metodi va oltre lo scopo di questo articolo.

Assicurati di aver effettuato l'accesso al tuo server CA come utente non root ed esegui quanto segue, sostituendo l'IP del tuo server o il nome DNS al posto di your_server_ip:

  1. scp ~/easy-rsa/pki/crl.pem sammy@your_server_ip:/tmp

Ora che il file si trova sul sistema remoto, l'ultimo passaggio consiste nell'aggiornare tutti i servizi con la nuova copia dell'elenco di revoche.

Servizi di aggiornamento che supportano un CRL

L'elenco dei passaggi necessari per aggiornare i servizi che utilizzano il file crl.pem va oltre lo scopo di questo tutorial. In generale dovrai copiare il file crl.pem nella posizione prevista dal servizio e quindi riavviarlo utilizzando systemctl.

Dopo aver aggiornato i tuoi servizi con il nuovo file crl.pem, i tuoi servizi saranno in grado di rifiutare le connessioni da client o server che utilizzano un certificato revocato.

Esaminare e verificare il contenuto di una CRL

Se desideri esaminare un file CRL, ad esempio per confermare un elenco di certificati revocati, usa il seguente comando openssl dalla tua directory easy-rsa sul tuo server CA :

  1. cd ~/easy-rsa
  2. openssl crl -in pki/crl.pem -noout -text

Puoi anche eseguire questo comando su qualsiasi server o sistema che abbia lo strumento openssl installato con una copia del file crl.pem. Ad esempio, se hai trasferito il file crl.pem sul tuo secondo sistema e vuoi verificare che il certificato sammy-server sia stato revocato, puoi utilizzare un openssl come il seguente, sostituendo il numero di serie che hai annotato in precedenza quando hai revocato il certificato al posto di quello evidenziato qui:

  1. openssl crl -in /tmp/crl.pem -noout -text |grep -A 1 8348B3F146A765581946040D5C4D590A
Output
Serial Number: 8348B3F146A765581946040D5C4D590A Revocation Date: Apr 1 20:48:02 2020 GMT

Nota come viene utilizzato il comando grep per verificare il numero di serie univoco che hai annotato nella fase di revoca. Ora puoi verificare il contenuto del tuo elenco di revoca dei certificati su qualsiasi sistema che si basa su di esso per limitare l'accesso a utenti e servizi.

Conclusione

In questo tutorial hai creato un'autorità di certificazione privata utilizzando il pacchetto Easy-RSA su un server Debian 11 autonomo. Hai imparato come funziona il modello di fiducia tra le parti che si affidano alla CA. Hai anche creato e firmato una richiesta di firma del certificato (CSR) per un server di esercitazione e quindi revocato un certificato. Infine, hai generato e distribuito un elenco di revoche di certificati (CRL) per qualsiasi sistema che fa affidamento sulla tua CA per garantire che gli utenti o i server che non dovrebbero accedere ai servizi siano impediti dall'accesso.

Ora puoi emettere certificati per gli utenti e utilizzarli con servizi come OpenVPN. Puoi anche utilizzare la tua CA per configurare i server Web di sviluppo e gestione temporanea con certificati per proteggere i tuoi ambienti non di produzione. L'utilizzo di una CA con certificati TLS durante lo sviluppo può aiutare a garantire che il codice e gli ambienti corrispondano il più possibile all'ambiente di produzione.

Se desideri saperne di più su come utilizzare OpenSSL, il nostro tutorial OpenSSL Essentials: lavorare con certificati SSL, chiavi private e CSR contiene molte informazioni aggiuntive per aiutarti a familiarizzare con i fondamenti di OpenSSL.


Tutti i diritti riservati. © Linux-Console.net • 2019-2024