Differences between revisions 3 and 4
Revision 3 as of 2015-04-06 13:56:56
Size: 5429
Editor: Kurgan
Comment:
Revision 4 as of 2015-04-06 14:00:24
Size: 5472
Editor: Kurgan
Comment:
Deletions are marked like this. Additions are marked like this.
Line 59: Line 59:
Se volete cambiare una password di un certificato generato in precedenza, potete usare {{{./easyrsa set-rsa-pass <nome-file-certificato>}}} Se volete cambiare una password di una chiave privata generata in precedenza, potete usare {{{./easyrsa set-rsa-pass <nome-file-chiave>}}} (il nome del file e` senza ".key" in fondo)

EasyRSA

EasyRSA (https://github.com/OpenVPN/easy-rsa) e` un insieme di script comodi per creare e gestire una piccola CA privata. Ideale per creare le chiavi per OpenVPN, puo` essere usata anche per altri scopi.

EasyRSA versione 2 e precedenti

Questi sono appunti su come usare EasyRSA versione 2 e precedenti per generare una CA e dei certificati per OpenVPN.

  • Editare il file vars che si trova sotto easy-rsa e configurare in modo credibile i seguenti parametri: KEY_COUNTRY, KEY_PROVINCE, KEY_CITY, KEY_ORG e KEY_EMAIL. Nessuno di questi deve essere vuoto. Vale anche la pena di impostare KEY_SIZE a 2048, perche` siamo paranoici.

    • Se il file openssl.cnf e` gzippato (openssl.cnf.gz) occorre gunzipparlo.

    • Editare il file openssl.cnf e mettere il parametro "default_days" a un valore accettabile. Un anno e` troppo poco, io ho messo 10 anni. (3650 giorni)

    • Creare i certificati della root CA privata, con i seguenti comandi:

. ./vars
./clean-all
./build-ca

Attenzione a come viene invocato "vars" nella prima riga, "punto spazio punto barra"... e` un po` molesto. Alle domande che verranno poste da "build-ca", e` necessario inserire dei valori dove manca il default, e NON MODIFICARE nulla dove il default e` presente. Ora la CA e` configurata. La chiave privata della CA dovrebbe essere supersegreta, da tenere in un floppy in una cassaforte in cantina con davanti un cartello "attenti al leopardo".

  • Creare una coppia di chiavi per il server, come segue:
    • eseguire il comando ./build-key-server <nome file della chiave> (usare un nome tipo "server" puo` andare bene)

    • Alle domande con un default, NON modificarlo. Dove non c'e` default, rispondere a senso.
    • Alla fine, rispondere di si` alle domande "Sign the certificate?" e "1 out of 1 certificate requests certified, commit?".
  • Creare una coppia di chiavi per il primo client. Ovviamente se ne possono creare quante se ne vogliono, ripetendo questa procedura in futuro.
    • eseguire il comando ./build-key <nome file della chiave> (usare un nome tipo "client1" puo` andare bene). Se si vuole che l'utente del client debba inserire una password per usare la chiave, usare build-key-pass al posto di build-key.

    • Come per il server, rispondere alle domande che non hanno default con delle risposte sensate. Attenzione che il "Common Name" deve essere DIVERSO per ogni chiave generata.
    • Alla fine, rispondere di si` alle domande "Sign the certificate?" e "1 out of 1 certificate requests certified, commit?".
  • Generare, per il server, il file contenente i parametri DH, con il comando ./build-dh. (roba da matematti). E` lentissimo, bersi una coca in attesa.

EasyRSA versione 3

Questi sono appunti su come usare EasyRSA versione 3 per generare una CA e dei certificati per OpenVPN.

  • Editare il files vars impostando i valori delle variabili che identificano la CA:

    • EASYRSA_REQ_COUNTRY
    • EASYRSA_REQ_PROVINCE
    • EASYRSA_REQ_CITY
    • EASYRSA_REQ_ORG
    • EASYRSA_REQ_EMAIL
    • EASYRSA_REQ_OU
  • Sempre nello stesso file vars, impostare la validita` e il numero di bit della chiave. (4096 bit, 50 anni)

    • EASYRSA_KEY_SIZE 4096
    • EASYRSA_CA_EXPIRE 18250
    • EASYRSA_CERT_EXPIRE 18250
  • Impostare l'ambiente della CA (cancella tutte le chiavi precedentemente generate, se ci sono!!!) con il comando ./easyrsa init-pki

  • Creare la CA con il comando ./easyrsa build-ca nopass. Se volete impostare una password per il certificato della CA, togliete il parametro nopass

  • Creare una chiave per il server OpenVPN con il comando ./easyrsa build-server-full server nopass Questo comando genera una chiave di tipo "server" con nome file "server" (.key e .crt). Ovviamente il nome del file e` a vostra scelta, e ovviamente e` possibile generare piu` di una chiave di tipo server se e` necessario. Nel caso della chiave server, a meno di esigenze particolari, e` opportuno usare il parametro "nopass" per generare una chiave che non richiede password, visto che il server dovra` potersi avviare senza che qualcuno digiti la password della sua chiave.

  • Creare una chiave per ogni client, con il comando ./easyrsa build-client-full <nome-file-chiave> nopass. Se volete che il certificato abbia una password, togliete il parametro "nopass". La password puo` essere poi cambiata (o anche tolta o messa), volendo, dall'utente che usera` il certificato.

  • Creare il file contenente i parametri DH per il server con il comando ./easyrsa gen-dh, che e` lentissimo, specie se usate keysize 4096.

Fatto tutto questo, i files delle chiavi e dei certificati li trovate dentro alla directory pki. Nello specifico:

  • I files della CA (ca.crt) sono dentro a pki

  • I files delle chiavi (server e client) sono dentro a pki/private

  • I files dei certificati (server e client) sono dentro a pki/issued

Se volete vedere delle informazioni su un certificato generato in precedenza, potete usare ./easyrsa show-cert <nome-file-certificato> full. Il nome file e` senza ".crt" in fondo, e il parametro "full" puo` essere omesso per avere un output ridotto.

Se volete cambiare una password di una chiave privata generata in precedenza, potete usare ./easyrsa set-rsa-pass <nome-file-chiave> (il nome del file e` senza ".key" in fondo)

EasyRSA (last edited 2019-06-21 19:03:56 by Kurgan)