GNU/Linux >> Tutoriales Linux >  >> Cent OS

Instale EasyRSA (Autoridad de certificación) -CA en CentOS / RHEL 8

Introducción

Resumen de Easy-RSA

Easy-RSA es una utilidad para administrar una PKI CA (Autoridad de certificación) además de X.509 PKI o Infraestructura de clave pública. Una PKI se basa en la noción de confiar en una autoridad particular para autenticar a un par remoto; para obtener más información sobre cómo funciona la PKI, consulte la Introducción a la PKI documento.

El código está escrito en un shell POSIX independiente de la plataforma, lo que permite su uso en una amplia gama de sistemas host. La versión oficial de Windows también incluye los programas necesarios para usar Easy-RSA. El código de shell intenta limitar el número de programas externos de los que depende. Las tareas relacionadas con criptografía usan openssl como backend funcional.

Características destacadas

Aquí hay una lista no exhaustiva de las características más notables de Easy-RSA:

  • Easy-RSA puede administrar múltiples PKI, cada una con su propia configuración independiente, directorio de almacenamiento y administración de extensiones X.509.
  • Múltiples opciones de formato de nombre de sujeto (campo X.509 DN) admitidas. Para las VPN, esto significa que se puede usar una configuración de solo nombre común más limpia.
  • Se utiliza un solo backend en todas las plataformas compatibles, lo que garantiza que ninguna plataforma se quede "fuera" de las características enriquecidas. Los similares a Unix (BSD, Linux, etc.) y Windows son compatibles.
  • La compatibilidad con X.509 de Easy-RSA incluye atributos CRL, CDP, keyUsage/eKu y características adicionales. El soporte incluido se puede cambiar o ampliar como una característica avanzada.
  • Modos de operación interactivos y automatizados (por lotes)
  • Configuración flexible:las funciones se pueden habilitar a través de opciones de línea de comandos, variables de entorno, un archivo de configuración o una combinación de estos.
  • Los valores predeterminados incorporados permiten usar Easy-RSA sin editar primero un archivo de configuración.

Así que EasyRSA es una utilidad CLI gratuita y de código abierto para crear una autoridad de certificación raíz y solicitar y firmar certificados, incluidas CA intermedias y listas de revocación de certificados (CRL).

Paquetes de actualización en CentOS / RHEL

Actualice los paquetes de software en su distribución de Linux antes de instalar cualquier software nuevo en ella.

Por lo tanto, ejecute dnf Comando para actualizar paquetes de software en su CentOS/Red Hat Enterprise Linux.

# dnf update -y

Verifique la versión de Kernel utilizada en esta guía de instalación.

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

Verifique también la versión de distribución de Linux.

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

Instalar EasyRSA en CentOS/RHEL

Descarga la última versión de EasyRSA con el 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]# 

Extraiga el archivo tar descargado ejecutando 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]# 

Luego cambie el nombre del directorio extraído.

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

Generar certificado PKI y CA

puedes hacer esto con este comando a continuación:

[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]# 

Así que ahora genere su autoridad de certificación (CA), que se usará para firmar las solicitudes de firma de certificado (CSR) del servidor y del cliente con el siguiente comando.

[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]# 

Generar certificado SSL de servidor

Así que generaremos una clave privada RSA y CSR con el siguiente comando.

[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]# 

Además de, firme la CSR de su servidor mediante el uso de la clave privada de la autoridad de certificación (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]# 

Ha firmado con éxito el certificado SSL.

También para verificar si su certificado SSL se generó correctamente, puede ejecutar openssl comando como se muestra a continuación.

[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]# 

Generar clave (Diffie Hellman)

Entonces generaremos un Diffie Hellman clave para ser utilizada por el proceso de intercambio de claves. Use el siguiente comando para 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]# 

Generar un certificado SSL de cliente

Genere un certificado SSL para su cliente.

como se muestra en el ejemplo, el cliente será 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]# 

También puede firmar el certificado SSL del cliente como se muestra a continuación.

[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]# 

Así que ha generado y firmado con éxito el certificado SSL del cliente.

Copie también su certificado de autoridad certificadora (CA) en /etc/pki/ca-trust/source/anchors/ de sus clientes Linux para agregar su CA a su lista de CA de confianza.

Conclusión

Entonces, instalamos EasyRSA con éxito en CentOS / Red Hat Enterprise Linux 8. También configuramos una autoridad de certificación y certificados SSL firmados de servidor y cliente usando easyrsa comando.


Cent OS
  1. Cómo instalar ssl en RHEL 8 / CentOS 8

  2. Cómo instalar phpMyAdmin en RHEL 8 / CentOS 8

  3. Cómo instalar P7Zip en RHEL 8 / CentOS 8

  4. Cómo instalar ntfs-3g en RHEL 8 / CentOS 8

  5. Instalar Webmin en CentOS 7 / RHEL 7

Instalar nmap en RHEL 8 / CentOS 8

Cómo instalar mongodb en RHEL 8 / CentOS 8

Cómo instalar maven en RHEL 8 / CentOS 8

Cómo instalar cpan en RHEL 8 / CentOS 8

Instale python 2 en RHEL 8 / CentOS 8

Cree su propia autoridad de certificación (CA) en CentOS/RHEL