Certificati digitali: richiesta certificato

La creazione di un certificato richiede alcune procedure iniziali:

  • creazione di una propria coppia di chiavi pubblica/privata
  • richiesta del certificato .csr (Certificate Signing Request)

Il file .csr è il certificato da inoltrare alla Certificate Authority (CA) per ottenere un certificato valido.

Di seguito i comandi essenziali (sono diverse varianti e opzioni) per le operazioni usando openssl (disponibile in ambiente Linux o Windows).
Openssl non fornisce solo un una serie di comandi dedicati alla gestione di certificati, ma comprende librerie e strumenti per la completa gestione dei protocolli Transport Layer Security (TLS) e Secure Sockets Layer (SSL).
Non è l'unico strumento disponibile, ma è certamente il più diffuso.

Creazione chiavi:

openssl genrsa -out private.key 2048

 

Genera le chiavi di linghezza 2048 e le salva nel file private.key

Con questo comando il certificato è in formato txt, codificato base64 ed è facilmente leggibile con un editor di testo o con il comando:

openssl rsa -text -in private.key

Questa situazione, salvo casi specifici, non è desiderabile, perché la conoscenza e l’uso della chiave privata da parte di terzi comporta problemi di sicurezza.

La soluzione è utilizzare una password (o pass phrase) per proteggere la chiave. Il contenuto del file resta con una codifica base64, può essere aperto da un editor di testo, ma la chiave è criptata e per decriptarla serve la password. Si può aggiungere una protezione alla chiave in un secondo tempo, o fornire una password durante la generazione ad esempio con l’opzione –des3:

openssl genrsa -des3 -out private.key 2048

L’opzione -des3 consente di criptare le chiavi con un pass phrase richiesta durante l’esecuzione del programma.

Generazione richiesta:

La procedura di generazione della richiesta produce un certificato (estensione .csr) che contiene varie informazioni quali:

  • Common name. Il nome della entità a cui si riferisce il certificato. Si tratta del nome della risorsa indicata nell’url della richiesta https (o Full Qualidied Domain Name). Ad esempio www.nomesito.it
  • Organization. Il nome della organizzazione alla quale vien rilasciato il certificato. Es.: ACME spa.
  • Organization unit. L’unità organizzativa. Ad esempio il servizio informatico: Servizio IT
  • Email address. Indirizzo e-mail del richiedente.
  • City/Locality. Città. Ad esempio: Parma
  • State/County: Italia
  • Country. Codice ISO a due lettere della nazione, IT per l’Italia (https://www.nationsonline.org/oneworld/country_code_list.htm)
  • Public Key. La chiave pubblica ottenuta dalla generazione delle chiavi.

Il comando è:

openssl req -new -key private.key -out my_cert.csr

dove viene fornitito il nome del file contenente le chiavi e il nome del certificato che sarà creato.

Le varie informazioni, il common name in particolare, viene richiesto durante l'esecuzione del comando (o possono essere inserite usando varie opzioni del comando).

Il certificato così generato deve essere fornito alla Certificate Authority, che genera un nuovo certificato, firmato con la propria chiave privata a prova della sua autenticità.

Mantenendo il paragone con il rilascio della carta di identità, la richiesta consiste nei moduli compilati da consegnare al comune, dove si dichiara le generalità del richiedente. Il comune verifica i dati forniti dal richiedente e fornisce la carta di identità si un supporto specifico, con la firma dell’impiegato dell’anagrafe e il timbro del comune.

Ci sono, poi, vari livelli di verifica che la CA (o chi per essa) fa per verificare l’autenticità del richiedente, fornendo certificati con diversi livelli di sicurezza.

Tipologia: