GNU/Linux >> Tutoriels Linux >  >> Cent OS

Installez EasyRSA (autorité de certification)-CA sur CentOS / RHEL 8

Présentation

Présentation d'Easy-RSA

Easy-RSA est un utilitaire permettant de gérer une PKI CA (Certificate Authority) en plus de X.509 PKI, ou Public Key Infrastructure. Une PKI est basée sur la notion de faire confiance à une autorité particulière pour authentifier un pair distant ; pour plus d'informations sur le fonctionnement de PKI, consultez l'Introduction à PKI document.

Le code écrit dans un shell POSIX indépendant de la plate-forme, permettant une utilisation sur une large gamme de systèmes hôtes. La version officielle de Windows est également livrée avec les programmes nécessaires pour utiliser Easy-RSA. Le code shell tente de limiter le nombre de programmes externes dont il dépend. Les tâches liées à la cryptographie utilisent openssl comme backend fonctionnel.

Points forts des fonctionnalités

Voici une liste non exhaustive des fonctionnalités Easy-RSA les plus notables :

  • Easy-RSA est capable de gérer plusieurs PKI, chacune avec sa propre configuration indépendante, son répertoire de stockage et sa gestion des extensions X.509.
  • Plusieurs options de formatage de nom de sujet (champ X.509 DN) prises en charge. Pour les VPN, cela signifie qu'une configuration propre de nom commun uniquement peut être utilisée.
  • Un backend unique est utilisé sur toutes les plates-formes prises en charge, garantissant qu'aucune plate-forme n'est "exclue" des fonctionnalités riches. Les systèmes similaires à Unix (BSD, Linux, etc.) et Windows sont tous pris en charge.
  • La prise en charge X.509 d'Easy-RSA inclut les attributs CRL, CDP, keyUsage/eKu et des fonctionnalités supplémentaires. L'assistance incluse peut_être modifiée ou étendue en tant que fonctionnalité avancée.
  • Modes de fonctionnement interactifs et automatisés (par lots)
  • Configuration flexible :les fonctionnalités peuvent être activées via des options de ligne de commande, des variables d'environnement, un fichier de configuration ou une combinaison de ceux-ci.
  • Les paramètres par défaut intégrés permettent d'utiliser Easy-RSA sans avoir à modifier au préalable un fichier de configuration.

EasyRSA est donc un utilitaire CLI gratuit et open source pour créer une autorité de certification racine , et demander et signer des certificats, y compris des autorités de certification intermédiaires et des listes de révocation de certificats (CRL).

Mettre à jour les packages dans CentOS / RHEL

Mettez à jour les packages logiciels dans votre distribution Linux avant d'y installer un nouveau logiciel.

Par conséquent, exécutez dnf commande pour mettre à jour les packages logiciels dans votre CentOS / Red Hat Enterprise Linux.

# dnf update -y

Vérifiez la version du noyau utilisée dans ce guide d'installation.

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

Vérifiez également la version de la distribution Linux .

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

Installer EasyRSA sur CentOS / RHEL

Téléchargez la dernière version de EasyRSA avec la commande 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]# 

Extraire le fichier tar téléchargé en exécutant tar commande.

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

Renommez ensuite le répertoire extrait.

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

Générer un certificat PKI et CA

vous pouvez le faire avec cette commande ci-dessous :

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

Alors maintenant, générez votre autorité de certification (CA), qui sera utilisée pour signer les demandes de signature de certificat (CSR) du serveur et du client avec la commande ci-dessous.

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

Générer un certificat SSL de serveur

Nous allons donc générer une clé privée RSA et un CSR avec la commande ci-dessous.

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

En plus de, Signez votre serveur CSR en utilisant la clé privée de l'autorité de certification (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]# 

Vous avez signé avec succès le certificat SSL.

Aussi, pour vérifier que votre certificat SSL est correctement généré, vous pouvez exécuter openssl commande comme indiqué ci-dessous.

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

Générer la clé (Diffie Hellman)

Nous allons donc générer un Diffie Hellman clé à utiliser par le processus d'échange de clé. Utilisez la commande ci-dessous pour la générer.

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

Générer un certificat SSL client

Générez un certificat SSL pour votre client.

comme indiqué dans l'exemple, le client sera 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]# 

Vous pouvez également signer le certificat SSL du client comme indiqué ci-dessous.

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

Vous avez donc généré et signé avec succès le certificat SSL du client.

Copiez également votre certificat d'autorité de certification (CA) dans /etc/pki/ca-trust/source/anchors/ de vos clients Linux pour ajouter votre autorité de certification à leur liste d'autorités de certification de confiance.

Conclusion

Nous avons donc installé avec succès EasyRSA sur CentOS / Red Hat Enterprise Linux 8. Nous avons également configuré une autorité de certification et des certificats SSL signés de serveur et de client en utilisant easyrsa commande.


Cent OS
  1. Comment installer SSL sur RHEL 8 / CentOS 8

  2. Comment installer phpMyAdmin sur RHEL 8 / CentOS 8

  3. Comment installer P7Zip sur RHEL 8 / CentOS 8

  4. Comment installer ntfs-3g sur RHEL 8 / CentOS 8

  5. Installez Webmin sur CentOS 7 / RHEL 7

Installez nmap sur RHEL 8 / CentOS 8

Comment installer mongodb sur RHEL 8 / CentOS 8

Comment installer maven sur RHEL 8 / CentOS 8

Comment installer cpan sur RHEL 8 / CentOS 8

Installez Python 2 sur RHEL 8 / CentOS 8

Créez votre propre autorité de certification (CA) dans CentOS/RHEL