GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come creare un'autorità di certificazione (CA) su Ubuntu 20.04

L'autorità di certificazione (CA) è un'entità responsabile dell'emissione di certificati digitali per rendere sicura la comunicazione. Agisce come una terza parte fidata per il proprietario del certificato e la parte che fa affidamento sul certificato.

L'entità dell'autorità di certificazione può essere pubblica o privata. Le CA pubbliche vengono comunemente utilizzate per verificare l'identità dei siti Web e le CA private vengono utilizzate per generare certificati per una VPN da client a sito, utenti, server interni o singoli programmi e servizi all'interno della tua infrastruttura come server Web locali.

In questo tutorial impariamo come creare un'autorità di certificazione privata (CA) su Ubuntu 20.04 . Qui stiamo usando easy-rsa Utilità CLI per creare e gestire CA Server.

Prerequisiti

  • Un nodo con Ubuntu 20.04 per ospitare CA Server
  • Un utente con privilegio sudo

Fase 1:aggiorna il tuo sistema

Innanzitutto, aggiorna il tuo sistema Ubuntu, esegui il seguente comando:

apt update

Puoi saltare questo passaggio se stai installando easy-rsa dal repository ufficiale.

Fase 2:installa Easy-RSA sul server CA

Easy-RSA è uno strumento a riga di comando che facilita notevolmente la creazione di un'autorità di certificazione (CA) e la gestione dei certificati. Genera una chiave privata e un certificato radice pubblico.

Easy-RSA è disponibile nel repository apt predefinito. Per installare l'ultima versione dal repository GitHub di easy-rsa ufficiale.

Scarica lo strumento di gestione PKI Easy-RSA da Github:

wget https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.8/EasyRSA-3.0.8.tgz

Qui ho scaricato la versione 3.0.8 . Ora spostiamo il file in /opt cartella

sudo mv EasyRSA-3.0.8.tgz /opt

Ora cambia directory in /opt:

cd /opt

Esegui il comando seguente per decomprimere il file .tgz:

sudo tar xvf EasyRSA-3.0.8.tgz

Rinominare la directory usando il comando mv:

sudo mv EasyRSA-3.0.8 easy-rsa

Ora rendi l'utente non root il proprietario della directory:

sudo chown -R franck:franck easy-rsa/ 

Limita l'accesso alla directory PKI, solo per il proprietario:

sudo chmod 700 easy-rsa

Passaggio 3:configurazione del server CA

Qui imposteremo la directory dell'infrastruttura a chiave pubblica e creeremo un certificato pubblico/privato per il server CA.

Ora cambia la directory in easy-rsa che è stata creata in precedenza:

cd easy-rsa

Creeremo un vars file che verrà utilizzato per memorizzare le informazioni sull'organizzazione

$ cp vars.example vars

Ora aggiungi le informazioni sull'organizzazione alla fine del file

$ vim vars
set_var EASYRSA_REQ_COUNTRY    "CM"
set_var EASYRSA_REQ_PROVINCE   "Centre"
set_var EASYRSA_REQ_CITY       "Yaounde"
set_var EASYRSA_REQ_ORG        "LINUXSHARE"
set_var EASYRSA_REQ_EMAIL      "[email protected]"
set_var EASYRSA_REQ_OU         "Com"
set_var EASYRSA_ALGO           "ec"
set_var EASYRSA_DIGEST         "sha512"

Ora inizializzeremo la directory dell'infrastruttura a chiave pubblica:

$ ./easyrsa init-pki
Note: using Easy-RSA configuration from: /opt/easy-rsa/vars
 init-pki complete; you may now create a CA or requests.
 Your newly created PKI dir is: /opt/easy-rsa/pki

Per generare il pubblico root e coppia di chiavi private per il server CA, digitare:

$ ./easyrsa build-ca
Note: using Easy-RSA configuration from: /opt/easy-rsa/vars
 Using SSL: openssl OpenSSL 1.1.1f  31 Mar 2020
 Enter New CA Key Passphrase: 
 Re-Enter New CA Key Passphrase: 
 read EC key
 writing EC key
 You are about to be asked to enter information that will be incorporated
 into your certificate request.
 What you are about to enter is what is called a Distinguished Name or a DN.
 There are quite a few fields but you can leave some blank
 For some fields there will be a default value,
 If you enter '.', the field will be left blank.
 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:
 /opt/easy-rsa/pki/ca.crt

Ti verrà chiesto di inserire una passphrase per la coppia di chiavi ogni volta che dovrai firmare o revocare un certificato. Ti verrà anche chiesto il nome comune (CN) per la tua CA, puoi utilizzare quello predefinito se lo desideri.

L'operazione creerà due file principali:

  • Il certificato pubblico file ca.crt file che i server ei client utilizzeranno per verificare che si trovino sullo stesso perimetro di attendibilità
  • La chiave privata file ca.key nel pki/private directory utilizzata dalla CA per firmare i certificati dei server e dei client

Fase 4:importa il certificato pubblico della CA

Ora che abbiamo generato il certificato pubblico, dobbiamo importarlo su un altro server.

Accedi al server su cui desideri importare il certificato, quindi esegui una copia remota di ca.crt file dal server CA.

scp [email protected]:/opt/easy-rsa/pki/ca.crt
The authenticity of host 'X.Y.Z.T (X.Y.Z.T)' can't be established.
 ECDSA key fingerprint is SHA256:ffUgP5/d0Z3miOKqxBVoF9JbFvIZFs/gxr7ESBZ0kmQ.
 Are you sure you want to continue connecting (yes/no)? yes
 Warning: Permanently added '139.177.204.145' (ECDSA) to the list of known hosts.
 [email protected]'s password: 
 ca.crt                                                                                                           100%  749     2.4KB/s   00:00

Sposta il file del certificato in /usr/local/share/ca-certificates/ directory:

sudo mv ca.crt /usr/local/share/ca-certificates/

Ora importa il certificato del CA Server usando il seguente comando:

sudo update-ca-certificates
Updating certificates in /etc/ssl/certs…
1 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d…
done.

Con ciò, il tuo server ora si fiderà dei certificati che sono stati firmati dal tuo server CA.

Fase 5:crea la richiesta di certificato del server e la chiave privata

Possiamo creare alcune richieste di firma del certificato (CSR) su un server diverso per fare in modo che la nostra CA firmi tali richieste.

Useremo OpenSSL per creare file CSR. Se OpenSSL non è installato, utilizza il seguente comando per installarlo:

sudo apt install openssl

Crea una directory denominata server1-csr per conservare la CSR e la chiave privata

mkdir server1-csr

Passa alla directory server1-csr

cd server1-csr

Ora genera la chiave privata usando OpenSSL:

openssl genrsa -out server1.key
Generating RSA private key, 2048 bit long modulus (2 primes)
..........+++++
..................................................+++++
e is 65537 (0x010001)

Puoi generare la CSR corrispondente utilizzando la chiave generata:

$ openssl req -new -key server1.key -out server1.req
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:CM
State or Province Name (full name) [Some-State]:CE
Locality Name (eg, city) []:Yaounde
Organization Name (eg, company) [Internet Widgits Pty Ltd]:LinuxShare
Organizational Unit Name (eg, section) []:Tech-B
Common Name (e.g. server FQDN or YOUR name) []:server1
Email Address []:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: 
An optional company name []:

Ora devi copiare il file CSR sul server CA:

$ scp server1.req scp [email protected]:/tmp/server1.req

Fase 6:firma la CSR del server sul server CA

La CSR generata deve essere firmata dal server CA. Per prima cosa, spostati nella directory easy-rsa per importare la richiesta di firma del certificato del server.

./easyrsa import-req /opt/sign-cert/server1.req server1
Note: using Easy-RSA configuration from: /opt/easy-rsa/vars
Using SSL: openssl OpenSSL 1.1.1f  31 Mar 2020
The request has been successfully imported with a short name of: server1
You may now use this name to perform signing operations on this request.

Ora firma la CSR usando il seguente comando:

./easyrsa sign-req server server1
Note: using Easy-RSA configuration from: /opt/easy-rsa/vars
 Using SSL: openssl OpenSSL 1.1.1f  31 Mar 2020
 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 825 days:
 subject=
     countryName               = CM
     stateOrProvinceName       = CE
     localityName              = Yaounde
     organizationName          = LinuxShare
     organizationalUnitName    = Tech-B
     commonName                = server1
 Type the word 'yes' to continue, or any other input to abort.
   Confirm request details: yes
 Using configuration from /opt/easy-rsa/pki/easy-rsa-161486.BI2HwH/tmp.lIqZoF
 Enter pass phrase for /opt/easy-rsa/pki/private/ca.key:
 Check that the request matches the signature
 Signature ok
 The Subject's Distinguished Name is as follows
 countryName           :PRINTABLE:'CM'
 stateOrProvinceName   :ASN.1 12:'CE'
 localityName          :ASN.1 12:'Yaounde'
 organizationName      :ASN.1 12:'LinuxShare'
 organizationalUnitName:ASN.1 12:'Tech-B'
 commonName            :ASN.1 12:'server1'
 Certificate is to be certified until Jan  5 16:57:26 2024 GMT (825 days)
 Write out database with 1 new entries
 Data Base Updated
 Certificate created at: /opt/easy-rsa/pki/issued/server1.crt

Dall'output è possibile visualizzare il certificato emesso nella directory /opt/easy-rsa/pki/issued/. Puoi anche verificare il certificato elencandolo:

$ ls -l /opt/easy-rsa/pki/issued

Uscita:

total 4
 -rw------- 1 franck franck 3996 Oct  2 16:57 server1.crt

Con tutti questi passaggi, sei in grado di gestire da solo i tuoi certificati per i tuoi server interni. Con il tuo server CA puoi firmare i certificati per i tuoi server web o per un tunnel VPN, ad esempio con OpenVPN.

Nota:per motivi di sicurezza, si consiglia di non eseguire altri servizi su un server CA. Dovrebbe essere utilizzato solo per importare, firmare e revocare le richieste di certificati come server autonomo.

Conclusione

In questo tutorial, abbiamo imparato come creare un'autorità di certificazione privata (CA) su Ubuntu 20.04. Grazie per la lettura, fornisci i tuoi commenti e suggerimenti nella sezione commenti.


Ubuntu
  1. Come creare Ubuntu Live USB in Windows

  2. Come creare un server di repository Ubuntu

  3. Come impostare e configurare un'autorità di certificazione su Ubuntu 22.04

  4. Come installare EPrints su Ubuntu 20.04

  5. Come creare un certificato SSL autofirmato su Ubuntu 18.04

Come creare collegamenti sul desktop su Ubuntu

Come creare un utente Sudo in Ubuntu Linux

Come creare Fedora Live USB in Ubuntu

Come creare una presentazione di foto in Ubuntu

Come creare una USB Ubuntu avviabile

Come creare un server Minecraft su Ubuntu 20.04