Canali
20091224112931_570891059_20091224112917_1884451932_wab32res_dll_10_13.png

Come generare certificati digitali con OpenSSL (Windows e Linux)

20/06/2011
- A cura di
Zane.
Tecniche Avanzate - Se volete implementare la connessione sicura via HTTPS al vostro server web oppure firmare digitalmente la corrispondenza, avete bisogno di un certificato digitale. Prima di mettere mano al portafogli, sappiate che potete generarvene uno in casa, con il quale studiare e svolgere tutte le prove del caso.

Download

Tag

Passa qui con il mouse e visualizza le istruzioni per utilizzare i tag!

linux (1) .

Valutazione

  •  
Voto complessivo 3.5 calcolato su 9 voti

L'articolo è stato aggiornato per correggere un errore nel comando di generazione del certificato presente nella stesura originale.Volendo semplificare al massimo un argomento piuttosto complesso, possiamo riferirci ad un certificato digitale come ad un documento elettronico che lega una chiave crittografica all'identità di un determinato e specifico soggetto

MLINewShot_0552.jpg

Questo, per fare un esempio, impedisce che Gambadilegno possa mandare un messaggio crittografato a Minnie spacciandosi con successo per Topolino.

Il modo "giusto" per entrare in possesso di questo oggetto è quello di rivolgersi ad una Certification Authority (CA) accreditata: si tratta di un'azienda che, a fronte del pagamento di un corrispettivo (nel caso più generale), verifica la vostra identità (tramite la vostra carta d'identità, il passaporto o equivalenti) e vi rilascia poi il certificato.

Se però, per motivi di studio o per meglio comprendere il funzionamento di questo potente meccanismo, desiderate creare uno di questi certificati "in casa", continuate a leggere: nel corso di questo articolo, vedremo come raggiungere l'obbiettivo sia sotto Linux, sia con Windows.

Il programma che ci consente di svolgere l'operazione si chiama OpenSSL: si tratta di un potente strumento che espone varie funzionalità crittografiche all'interno di un pacchetto gratuito anche per scopi commerciali, poiché rilasciato con licenza open source "GNU/GPL".

Installazione (Windows)

Prima ancora di iniziare a predisporre OpenSSL su Windows, sinceratevi di aver installato "Microsoft Visual C++ Redistributable Package" in versione "2008" o successiva.

Procedete quindi scaricando il setup. Una volta aperto, accettate la licenza d'uso e specificate il percorso d'installazione ed il nome del gruppo di collegamenti da crearsi nel menu Start (potete tranquillamente accettare quelli predefiniti).

Alla domanda Copy OneSSL DDLs to: vi suggerisco di scegliere The OpenSSL binaries (/bin) directory, per ottenere più ordine

MLINewShot_0550.jpg

Avanzate ancora un paio di volte ed attendete qualche istante per completare l'operazione.

A questo punto, aprite un prompt di comando amministrativo e quindi spostatevi all'interno della sottocartella bin della directory in cui avete installato OpenSSL poco fa. In condizioni standard, impartirete qualcosa di simile a cd C:\openssl\bin.

Installazione (Linux)

Tutti coloro che utilizzino Linux possono, generalmente, risparmiare qualche click. OpenSSL è infatti già presente in tutte le distribuzioni (ho avuto modo di verificarlo direttamente su CentOS e Ubuntu).

Per sincerarvene, basta impartire openssl da terminale ed accertarsi che non sia restituito un messaggio di errore "comando sconosciuto".

Se anche così fosse, potete correggere rapidamente il problema lanciando sudo yum install openssl -y (CentOS) oppure sudo apt-get install openssl -y (Ubuntu).

Una volta aver predisposto OpenSSL, aprite un'istanza del terminale, quindi impartite il comando proposto di seguito assicurandovi di farlo precedere da sudo  (se già non state usando l'account "root").

Generare un certificato

Per generare un certificato digitale ci si muove in modo pressoché identico indipendentemente che si stia lavorando sotto Linux o con Windows.

Per prima cosa, andremo a lanciare qualcosa di simile a questo:

openssl req -x509 -nodes -days 3650 -newkey rsa:1024 -keyout "C:\miocertificato.pem" -out "C:\miocertificato.pem"

In particolare:

  • -days 3650: indica che il certificato sarà valido per dieci anni (in altre parole, potrete utilizzarlo per giocare a vostro piacimento senza preoccuparvi che scada). Siete, naturalmente, liberi di scegliere un numero maggiore o minore;
  • "C:\miocertificato.pem": indica il percorso nel quale salvare il certificato che si andrà a generare. Gli utenti Linux dovranno, naturalmente, utilizzare qualcosa di appropriato come, ad esempio, "home/gianluigi/Desktop". Notate che lo stesso, medesimo percorso deve essere indicato due volte: la prima dopo il parametro -keyout, la seconda dopo il parametro -out;

Una volta impartito il comando, sarete chiamati ad indicare alcuni dati anagrafici relativi all'identità dell'utente che state certificando.

Notate che l'unico realmente indispensabile è quello chiamato Common Name: tutti gli altri possono essere saltati premendo semplicemente Invio. In tal caso, verrà usato il valore di default mostratovi tra parentesi quadre ([]).

In particolare:

  • Country Name (2 letter code) [AU]: specificare il codice di due lettere del Paese. Digitate IT per indicare lo Stivale;
  • State or Province Name (full name) [Some-State]: il nome esteso del Paese. Nel nostro caso, Italia;
  • Locality Name (eg, city) []: il nome della località. Ho usato Ferrara;
  • Organization Name (eg, company) [Internet Widgits Pty Ltd]: il nome della vostra organizzazione. Io ho inserito MegaLab.it;
  • Organizational Unit Name (eg, section) []: l'unità operativa della quale fate parte all'interno dell'azienda. Ho usato Amministrazione;
  • Common Name (eg, YOUR name) []: questo campo non può essere lasciato vuoto. Se state generando un certificato digitale da utilizzarsi per creare connessioni HTTPS, indicate qui l'hostname completo per raggiungere il servizio (ad esempio, www.megalab.it). In tutti gli altri casi, potete specificare il vostro nome e cognome;
  • Email Address []: credo che non servano spiegazioni;

MLINewShot_0551.jpg

Arrivati a questo punto, dovreste ritrovare il vostro certificato digitale pronto all'uso nel percorso indicato nel comando.

Sotto Windows, potete anche aprirlo con blocco note, salvare su un nuovo file con estensione .cer tutto il blocco compreso fra -----BEGIN CERTIFICATE----- e -----END CERTIFICATE----- (estermi inclusi) e quindi farvi doppio click per aprirlo direttamente ed osservare i vari valori.

Come mai "non funziona bene"?

Notate che il certificato digitale ottenuto con questa procedura fa scattare almeno un allarme di sicurezza quando utilizzato.

Il meccanismo di protezione rileva infatti che lo stesso non è stato rilasciato ad una Certification Authority riconosciuta (come descritto in apertura): di conseguenza, tale certificato non può essere considerato realmente attendibile.

È, ovviamente, tutto normale.

Per saperne di più

OpenSSL è un software davvero ampio e potente: per conoscere tutti i parametri utilizzabili e le opzioni disponibili, si può fare riferimento alla documentazione ufficiale.

A questa pagina, nello specifico, sono mostrati con dovizia di particolari tutti i parametri utilizzabili per la creazione di un certificato digitale come quello da noi generato.

Iscriviti gratuitamente alla newsletter, e ti segnaleremo settimanalmente tutti i nuovi contenuti pubblicati su MegaLab.it!

 

Segnala ad un amico

Tuo nome Tuo indirizzo e-mail (opzionale)
Invia a:
    Aggiungi indirizzo email
    Testo

    megalab.it: testata telematica quotidiana registrata al Tribunale di Cosenza n. 22/09 del 13.08.2009, editore Master New Media S.r.l.; © Copyright 2014 Master New Media S.r.l. a socio unico - P.I. 02947530784. GRUPPO EDIZIONI MASTER Spa Tutti i diritti sono riservati. Per la pubblicità: Master Advertising

    • Gen. pagina: 0.29 sec.
    •  | Utenti conn.: 82
    •  | Revisione 2.0.1
    •  | Numero query: 19
    •  | Tempo totale query: 0.12