====== EasyRSA ======
===== Installation =====
==== Via le paquet Debian ====
sudo apt install easy-rsa
make-cadir /etc/eesyrsa
mkdir /var/lib/easyrsa
cat << EOF > /usr/local/sbin/easyrsa
#!/bin/bash
export EASYRSA=/etc/easyrsa
export EASYRSA_PKI=/var/lib/easyrsa
cd "\$EASYRSA"
./easyrsa "\$@"
exit \$?
EOF
chmod 755 /usr/local/sbin/easyrsa
==== Depuis les sources ====
apt install openssl rsync wget
TMP_DIR=$(mktemp --directory)
cd $TMP_DIR
wget -O easyrsa.tgz https://github.com/OpenVPN/easy-rsa/releases/download/v3.1.7/EasyRSA-3.1.7.tgz
tar xzvf easyrsa.tgz
mv EasyRSA* /usr/local/share/easyrsa
chown root:root -R /usr/local/share/easyrsa
mkdir /etc/easyrsa
for i in easyrsa x509-types/ vars.example openssl-easyrsa.cnf
do
rsync -av /usr/local/share/easyrsa/$i /etc/easyrsa/$i
done
cp /etc/easyrsa/vars.example /etc/easyrsa/vars
cat << EOF > /usr/local/sbin/easyrsa
#!/bin/bash
export EASYRSA=/etc/easyrsa
export EASYRSA_PKI=/var/lib/easyrsa
cd "\$EASYRSA"
./easyrsa "\$@"
exit \$?
EOF
chmod 755 /usr/local/sbin/easyrsa
rm -fr $TMP_DIR
Le fichier ''/etc/easyrsa/vars'' contient des informations de configuration importante, comme par exemple la durée de validité des certificats générés (''EASYRSA_CERT_EXPIRE'', 825 jours par défaut).
===== Initialisation de la CA =====
easyrsa init-pki
EASYRSA_CA_EXPIRE=365 easyrsa build-ca
easyrsa show-ca
===== Générer un certificat pour un serveur =====
easyrsa build-server-full host.domain.tld nopass
Les fichiers générés seront récupérables ici :
* ''/var/lib/easyrsa/private/host.domain.tld.key''
* ''/var/lib/easyrsa/issued/host.domain.tld.crt''
* ''/var/lib/easyrsa/req/host.domain.tld.req'' (CSR)
Pour ajouter un nom de domaine alternatif au certificat, utiliser le paramètre ''--subject-alt-name'' (**à position avant l'argument ''build-server-full''**). Exemple :
easyrsa --subject-alt-name=DNS:alt.domain.tld build-server-full host.domain.tld nopass
===== Générer un certificat pour un client =====
* Générer la clé privée + une demande de certificat (CSR) : easyrsa gen-req myclient
* Approuver la demande de certificat (CSR) et le générer : easyrsa sign-req client myclient
Les fichiers générés seront récupérables ici :
* ''/var/lib/easyrsa/private/myclient.key''
* ''/var/lib/easyrsa/issued/myclient.crt''
* ''/var/lib/easyrsa/reqs/myclient.req'' (CSR)
===== Révoquer un certificat et générer la CRL =====
* Révoquer le certificat : easyrsa revoke myclient
* Générer la CRL : easyrsa gen-crl
La CRL est récupérable dans le fichier ''/var/lib/easyrsa/crl.pem''.
===== Exécution en mode batch =====
Pour une exécution en mode batch, sans avoir à répondre à des questions et en fournissant les réponses attendues via des variables d'environnement, vous pouvez :
* Générer la clé privée + une demande de certificat (CSR) : EASYRSA_PASSOUT=env:KEY_PWD KEY_PWD=myclient_secret easyrsa --batch gen-req myclient
* Approuver la demande de certificat (CSR) et le générer : EASYRSA_PASSIN=env:CA_PWD CA_PWD=ca_secret easyrsa --batch sign-req client myclient
* Révoquer le certificat : EASYRSA_PASSIN=env:CA_PWD CA_PWD=ca_secret easyrsa --batch revoke myclient
* Générer la CRL : EASYRSA_PASSIN=env:CA_PWD CA_PWD=ca_secret easyrsa --batch gen-crl