====== EasyRSA ====== ===== Installation ===== 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 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/issued/myclient.crt'' * ''/var/lib/easyrsa/private/myclient.key'' * ''/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