GNU/Linux >> Linux Esercitazione >  >> Cent OS

Installa EasyRSA (Autorità di certificazione)-CA su CentOS / RHEL 8

Introduzione

Panoramica Easy-RSA

Easy-RSA è un'utilità per la gestione di una CA PKI (Autorità di certificazione) oltre a X.509 PKI o Public Key Infrastructure. Una PKI si basa sulla nozione di fidarsi di una particolare autorità per autenticare un peer remoto; per ulteriori informazioni su come funziona PKI, vedere Intro-To-PKI documento.

Il codice scritto in una shell POSIX indipendente dalla piattaforma, che consente l'uso su un'ampia gamma di sistemi host. La versione ufficiale di Windows viene fornita anche in bundle con i programmi necessari per utilizzare Easy-RSA. Il codice della shell tenta di limitare il numero di programmi esterni da cui dipende. Le attività relative alle criptovalute utilizzano openssl come backend funzionale.

Caratteristiche in evidenza

Ecco un elenco non esaustivo delle più importanti funzionalità di Easy-RSA:

  • Easy-RSA è in grado di gestire più PKI, ciascuna con la propria configurazione indipendente, directory di archiviazione e gestione delle estensioni X.509.
  • Sono supportate più opzioni di formattazione del nome soggetto (campo DN X.509). Per le VPN, ciò significa che è possibile utilizzare una configurazione più pulita solo per commonName.
  • Un unico back-end viene utilizzato su tutte le piattaforme supportate, assicurando che nessuna piattaforma venga "esclusa" dalle funzionalità avanzate. Sono supportati Unix-like (BSD, Linux, ecc.) e Windows.
  • Il supporto X.509 di Easy-RSA include CRL, CDP, attributi keyUsage/eKu e funzionalità aggiuntive. Il supporto incluso può_essere modificato o esteso come funzionalità avanzata.
  • Modalità operative (batch) interattive e automatizzate
  • Configurazione flessibile:le funzioni possono essere abilitate tramite opzioni della riga di comando, variabili di ambiente, un file di configurazione o una combinazione di questi.
  • Le impostazioni predefinite integrate consentono di utilizzare Easy-RSA senza prima modificare un file di configurazione.

Quindi EasyRSA è un'utilità CLI gratuita e open source per creare un'autorità di certificazione radice e richiedere e firmare certificati, comprese le CA intermedie e gli elenchi di revoche di certificati (CRL).

Aggiorna i pacchetti in CentOS/RHEL

Aggiorna i pacchetti software nella tua distribuzione Linux, prima di installare qualsiasi nuovo software su di essa.

Pertanto, esegui dnf comando per aggiornare i pacchetti software in CentOS / Red Hat Enterprise Linux.

# dnf update -y

Verifica la versione del kernel utilizzata in questa guida all'installazione.

[root@rhel-pc ~]# uname -r
4.18.0-305.12.1.el8_4.x86_64
[root@rhel-pc ~]# 

Verifica anche la versione della distribuzione Linux.

[root@rhel-pc ~]# cat /etc/redhat-release
Red Hat Enterprise Linux release 8.4 (Ootpa)
[root@rhel-pc ~]# 

Installa EasyRSA su CentOS/RHEL

Scarica l'ultima versione di EasyRSA con il comando wget.

[root@rhel-pc mnt]# cd /mnt
[root@rhel-pc mnt]#  wget https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.8/EasyRSA-3.0.8.tgz
--2021-08-15 23:10:26--  https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.8/EasyRSA-3.0.8.tgz
Resolving github.com (github.com)... 140.82.121.3
Connecting to github.com (github.com)|140.82.121.3|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://github-releases.githubusercontent.com/4519663/2e0dee80-f7f3-11ea-9ba4-dc973db12175?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20210815%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20210815T210829Z&X-Amz-Expires=300&X-Amz-Signature=5199380d851889a82d52ae4950917b20c7717e387f0c6b62054969f554de8e04&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=4519663&response-content-disposition=attachment%3B%20filename%3DEasyRSA-3.0.8.tgz&response-content-type=application%2Foctet-stream [following]
--2021-08-15 23:10:28--  https://github-releases.githubusercontent.com/4519663/2e0dee80-f7f3-11ea-9ba4-dc973db12175?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20210815%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20210815T210829Z&X-Amz-Expires=300&X-Amz-Signature=5199380d851889a82d52ae4950917b20c7717e387f0c6b62054969f554de8e04&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=4519663&response-content-disposition=attachment%3B%20filename%3DEasyRSA-3.0.8.tgz&response-content-type=application%2Foctet-stream
Resolving github-releases.githubusercontent.com (github-releases.githubusercontent.com)... 185.199.111.154, 185.199.108.154, 185.199.109.154, ...
Connecting to github-releases.githubusercontent.com (github-releases.githubusercontent.com)|185.199.111.154|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 48907 (48K) [application/octet-stream]
Saving to: ‘EasyRSA-3.0.8.tgz’

EasyRSA-3.0.8.tgz                     100%[=======================================================================>]  47.76K  --.-KB/s    in 0.1s    

2021-08-15 23:10:29 (414 KB/s) - ‘EasyRSA-3.0.8.tgz’ saved [48907/48907]

[root@rhel-pc mnt]# 

Estrai il file tar scaricato eseguendo tar comando.

[root@rhel-pc mnt]# tar xfv EasyRSA-3.0.8.tgz 
EasyRSA-3.0.8/
EasyRSA-3.0.8/easyrsa
EasyRSA-3.0.8/openssl-easyrsa.cnf
EasyRSA-3.0.8/vars.example
EasyRSA-3.0.8/x509-types/
EasyRSA-3.0.8/gpl-2.0.txt
EasyRSA-3.0.8/mktemp.txt
EasyRSA-3.0.8/COPYING.md
EasyRSA-3.0.8/ChangeLog
EasyRSA-3.0.8/README.md
EasyRSA-3.0.8/README.quickstart.md
EasyRSA-3.0.8/doc/
EasyRSA-3.0.8/doc/EasyRSA-Advanced.md
EasyRSA-3.0.8/doc/EasyRSA-Readme.md
EasyRSA-3.0.8/doc/EasyRSA-Upgrade-Notes.md
EasyRSA-3.0.8/doc/Hacking.md
EasyRSA-3.0.8/doc/Intro-To-PKI.md
EasyRSA-3.0.8/x509-types/COMMON
EasyRSA-3.0.8/x509-types/ca
EasyRSA-3.0.8/x509-types/client
EasyRSA-3.0.8/x509-types/code-signing
EasyRSA-3.0.8/x509-types/email
EasyRSA-3.0.8/x509-types/kdc
EasyRSA-3.0.8/x509-types/server
EasyRSA-3.0.8/x509-types/serverClient
[root@rhel-pc mnt]# 

Quindi rinomina la directory estratta.

[root@rhel-pc mnt]# mv EasyRSA-3.0.8 EasyRSA

Genera certificato PKI e CA

puoi farlo con questo comando qui sotto:

[root@rhel-pc mnt]# cd EasyRSA/
[root@rhel-pc EasyRSA]# ./easyrsa init-pki

init-pki complete; you may now create a CA or requests.
Your newly created PKI dir is: /mnt/EasyRSA/pki


[root@rhel-pc EasyRSA]# 

Quindi ora genera la tua autorità di certificazione (CA), che verrà utilizzata per firmare le richieste di firma del certificato (CSR) del server e del client con il comando seguente.

[root@rhel-pc EasyRSA]# ./easyrsa build-ca
Using SSL: openssl OpenSSL 1.1.1g FIPS  21 Apr 2020

Enter New CA Key Passphrase: 
Re-Enter New CA Key Passphrase: 
Generating RSA private key, 2048 bit long modulus (2 primes)
..................+++++
...........................................................................................................................................................+++++
e is 65537 (0x010001)
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]:unixcop

CA creation complete and you may now import and sign cert requests.
Your new CA certificate file for publishing is at:
/mnt/EasyRSA/pki/ca.crt


[root@rhel-pc EasyRSA]# 

Genera certificato SSL server

Quindi genereremo una chiave privata RSA e una CSR con il comando seguente.

[root@rhel-pc EasyRSA]# ./easyrsa gen-req easyrsa.unixcop.com nopass
Using SSL: openssl OpenSSL 1.1.1g FIPS  21 Apr 2020
Generating a RSA private key
............................................................................................................................................................................................+++++
..........+++++
writing new private key to 'https://1118798822.rsc.cdn77.org/mnt/EasyRSA/pki/easy-rsa-6230.db5Ie8/tmp.5R7sqs'
-----
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) [easyrsa.unixcop.com]:

Keypair and certificate request completed. Your files are:
req: /mnt/EasyRSA/pki/reqs/easyrsa.unixcop.com.req
key: /mnt/EasyRSA/pki/private/easyrsa.unixcop.com.key


[root@rhel-pc EasyRSA]# 

Inoltre, firma la CSR del tuo server utilizzando la chiave privata dell'autorità di certificazione (CA).

[root@rhel-pc EasyRSA]# ./easyrsa sign-req server easyrsa.unixcop.com
Using SSL: openssl OpenSSL 1.1.1g FIPS  21 Apr 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=
    commonName                = easyrsa.unixcop.com


Type the word 'yes' to continue, or any other input to abort.
  Confirm request details: yes
Using configuration from /mnt/EasyRSA/pki/easy-rsa-6260.UVEjyC/tmp.nTGkfr
Enter pass phrase for /mnt/EasyRSA/pki/private/ca.key:
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
commonName            :ASN.1 12:'easyrsa.unixcop.com'
Certificate is to be certified until Nov 18 21:18:53 2023 GMT (825 days)

Write out database with 1 new entries
Data Base Updated

Certificate created at: /mnt/EasyRSA/pki/issued/easyrsa.unixcop.com.crt


[root@rhel-pc EasyRSA]# 

Hai firmato con successo il certificato SSL.

Inoltre, per verificare se il tuo certificato SSL è stato generato correttamente, puoi eseguire openssl comando come mostrato di seguito.

[root@rhel-pc EasyRSA]#  openssl verify -CAfile pki/ca.crt /mnt/EasyRSA/pki/issued/easyrsa.unixcop.com.crt
/mnt/EasyRSA/pki/issued/easyrsa.unixcop.com.crt: OK
[root@rhel-pc EasyRSA]# 

Genera chiave (Diffie Hellman)

Quindi genereremo un Diffie Uomo infernale chiave da utilizzare nel processo di scambio delle chiavi. Usa il comando seguente per generarlo.

[root@rhel-pc EasyRSA]# ./easyrsa gen-dh
Using SSL: openssl OpenSSL 1.1.1g FIPS  21 Apr 2020
Generating DH parameters, 2048 bit long safe prime, generator 2
This is going to take a long time
......................................................................................................................................................................................................................................................................................................................................+..+...........................................+.....................+..........................................................................................+..........................................................................................................................................................................................................................................................................................................................................................................+........................................+....................................................................................................................+............................................................................................................................................................................................................+...................................+........................................................................................................................................................................................................................................................................+...........+......................................................................................................+...........................................................+..........................+...............................................................................................................................................+..................................................++*++*++*++*

DH parameters of size 2048 created at /mnt/EasyRSA/pki/dh.pem


[root@rhel-pc EasyRSA]# 

Genera un certificato SSL client

Genera un certificato SSL per il tuo cliente.

come mostrato nell'esempio, il client sarà qadry.unixcop.com

[root@rhel-pc EasyRSA]#  ./easyrsa gen-req qadry.unixcop.com nopass
Using SSL: openssl OpenSSL 1.1.1g FIPS  21 Apr 2020
Generating a RSA private key
..+++++
.............................+++++
writing new private key to 'https://1118798822.rsc.cdn77.org/mnt/EasyRSA/pki/easy-rsa-6458.r26VDM/tmp.fjd968'
-----
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) [qadry.unixcop.com]:

Keypair and certificate request completed. Your files are:
req: /mnt/EasyRSA/pki/reqs/qadry.unixcop.com.req
key: /mnt/EasyRSA/pki/private/qadry.unixcop.com.key


[root@rhel-pc EasyRSA]# 

Inoltre puoi firmare il certificato SSL del client come mostrato di seguito.

[root@rhel-pc EasyRSA]# ./easyrsa sign-req client qadry.unixcop.com
Using SSL: openssl OpenSSL 1.1.1g FIPS  21 Apr 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 client certificate for 825 days:

subject=
    commonName                = qadry.unixcop.com


Type the word 'yes' to continue, or any other input to abort.
  Confirm request details: yes
Using configuration from /mnt/EasyRSA/pki/easy-rsa-6507.0eJrdy/tmp.sFYefJ
Enter pass phrase for /mnt/EasyRSA/pki/private/ca.key:
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
commonName            :ASN.1 12:'qadry.unixcop.com'
Certificate is to be certified until Nov 18 21:29:23 2023 GMT (825 days)

Write out database with 1 new entries
Data Base Updated

Certificate created at: /mnt/EasyRSA/pki/issued/qadry.unixcop.com.crt


[root@rhel-pc EasyRSA]# 

Quindi hai generato e firmato correttamente il certificato SSL del client.

Copia anche il tuo certificato di autorità di certificazione (CA) in /etc/pki/ca-trust/source/anchors/ dei tuoi client Linux per aggiungere la tua CA al loro elenco di CA attendibili.

Conclusione

Quindi abbiamo installato con successo EasyRSA su CentOS / Red Hat Enterprise Linux 8. Abbiamo anche configurato un'autorità di certificazione e certificati SSL firmati di server e client utilizzando easyrsa comando.


Cent OS
  1. Come installare SSL su RHEL 8 / CentOS 8

  2. Come installare phpMyAdmin su RHEL 8 / CentOS 8

  3. Come installare P7Zip su RHEL 8 / CentOS 8

  4. Come installare ntfs-3g su RHEL 8 / CentOS 8

  5. Installa Webmin su CentOS 7 / RHEL 7

Installa nmap su RHEL 8 / CentOS 8

Come installare mongodb su RHEL 8 / CentOS 8

Come installare Maven su RHEL 8 / CentOS 8

Come installare cpan su RHEL 8 / CentOS 8

Installa Python 2 su RHEL 8 / CentOS 8

Crea la tua autorità di certificazione (CA) in CentOS/RHEL