Cette page est en lecture seule. Vous pouvez afficher le texte source, mais ne pourrez pas le modifier. Contactez votre administrateur si vous pensez qu'il s'agit d'une erreur. ====== EasyRSA ====== ===== Installation ===== ==== Via le paquet Debian ==== <code bash> 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 </code> ==== Depuis les sources ==== <code bash> 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 </code> <note tip>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).</note> ===== Initialisation de la CA ===== <code bash> easyrsa init-pki EASYRSA_CA_EXPIRE=365 easyrsa build-ca easyrsa show-ca </code> ===== Générer un certificat pour un serveur ===== <code bash>easyrsa build-server-full host.domain.tld nopass</code> 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) <note tip>Pour ajouter un nom de domaine alternatif au certificat, utiliser le paramètre ''--subject-alt-name'' (**à position avant l'argument ''build-server-full''**). Exemple : <code bash>easyrsa --subject-alt-name=DNS:alt.domain.tld build-server-full host.domain.tld nopass</code></note> ===== Générer un certificat pour un client ===== * Générer la clé privée + une demande de certificat (CSR) : <code bash>easyrsa gen-req myclient</code> * Approuver la demande de certificat (CSR) et le générer : <code bash>easyrsa sign-req client myclient</code> 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 : <code bash>easyrsa revoke myclient</code> * Générer la CRL : <code bash>easyrsa gen-crl</code> 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) : <code bash>EASYRSA_PASSOUT=env:KEY_PWD KEY_PWD=myclient_secret easyrsa --batch gen-req myclient</code> * Approuver la demande de certificat (CSR) et le générer : <code bash>EASYRSA_PASSIN=env:CA_PWD CA_PWD=ca_secret easyrsa --batch sign-req client myclient</code> * Révoquer le certificat : <code bash>EASYRSA_PASSIN=env:CA_PWD CA_PWD=ca_secret easyrsa --batch revoke myclient</code> * Générer la CRL : <code bash>EASYRSA_PASSIN=env:CA_PWD CA_PWD=ca_secret easyrsa --batch gen-crl</code>