|
Non è cosa di tutti i giorni dover usare OpenSSL, ma ritengo che possa essere utile una piccola guida per chi abbia bisogno di crearsi dei certificati, per motivi di sviluppo o che altro. Nel web si trovano molte guide, qui non voglio aggiungere niente di nuovo, solo un breve resoconto di come crearsi una propria CA e i certificati da essa firmati. Per creare una CA innanzitutto è conveniente avere una directory di lavoro, che conterrà poi il certificato della CA stessa e la chiave privata. Si può creare la directory con questo tree: - /opt/openssl_ca
- /opt/openssl_ca/certs
- /opt/openssl_ca/private
Importante: non si stanno facendo le cose "sul serio", ma è buona cosa se le directory /certs e /private siano scrivibili solo dall'owner della CA e la directory /private sia anche esclusivamente leggibile solo dall'owne. A questo punto si può iniziare generando la chiave. Ci si posizioni dentro private e si avvii OpenSSL (sfruttando la sua subshell oppure passando direttamente i parametri al comando): - openssl genrsa -des3 -out myca.key 1024
In questo modo si sta creando una chiave da 1024 bit Ora si potrà creare il certificato di CA, che dovrà essere poi rilasciato a tutti coloro che vogliono considerare "attendibili" i futuri certificati emessi da essa. - openssl req -new -x509 -key /private/myca.key -days 3650 -out /certs/myca.crt
Con questo comando si è creato un certificato x.509 valido per 3650 giorni (non proprio 10 anni considerando i bisestili, ma non avevo voglia di fare bene i conti xD). Troverete il certificato nella directory /certs. Infine, per fornire la certezza che la vostra CA corrisponda, quando la consegnate agli utenti che vogliano avere "fiducia" in voi utilizzate il comando - openssl x509 -fingerprint -noout -in /certs/myca.crt
In modo da generare la "impronta digitale" del certificato. In conclusione, è possibile modificare il file openssl.cnf in modo da far usare di default la nostra CA ad openssl. Il file è autoesplicativo e ne trovate un template qui . Questa breve guida è stata riassunta da varie fonti che ho trovato in rete, riporta i passi che ho usato prendendo spunto da questo e da quel sito, spero che vi possa far risparmiare un po' di tempo :) |