Generare certificati SSL può essere un compito difficile, pieno di frustrazione e tristezza. Ma non deve essere così! Se hai Windows 10 e OpenSSL, insieme a un piccolo aiuto da questo tutorial, sarai sulla buona strada.
In questo articolo, imparerai come installare OpenSSL su Windows 10. Una volta installato, genererai certificati SSL, risolverai problemi e debuggherai i certificati e convertirai tra i formati.
Iniziamo a padroneggiare OpenSSL su Windows 10 con PowerShell!
Correlato: Gestire i certificati con Windows Certificate Manager e PowerShell
Prerequisiti
In questo articolo, imparerai con un approccio pratico. Mentre OpenSSL storicamente è un’utilità per sistemi operativi Linux, puoi utilizzarla anche con Windows OS.
- A Windows system with Local Administrator rights – The tutorial will be using Windows 10
- Windows PowerShell 5.1 (già presente in Windows) o PowerShell 7
- Chocolatey – Un gestore di pacchetti per Windows installato.
- PowerShell ISE, Visual Studio Code o qualsiasi altro editor di testo a tua scelta
Tutte le schermate in questa guida sono state realizzate su Windows 10 build 1909 e PowerShell 7.
Installazione di OpenSSL su Windows 10 con PowerShell e Chocolatey
Assumendo che tu abbia installato Chocolatey utilizzando le istruzioni di installazione, il tuo primo compito è installare OpenSSL su Windows 10. Per farlo, apri la console di PowerShell e esegui il comando choco install OpenSSL.Light
come mostrato di seguito.

Ecco fatto! Hai ora installato OpenSSL con PowerShell.
Configura una directory di lavoro
In questo tutorial creerai alcuni certificati per apprendere. Per assicurarti che tutto il lavoro che svolgi qui sia confinato in una singola cartella che puoi eliminare in seguito, crea una.
In questo tutorial verranno archiviati tutti i certificati e i file correlati nella cartella C:\certs. Puoi creare una cartella con PowerShell eseguendo il comando seguente.
Ora è il momento di configurare OpenSSL.
Configurazione di OpenSSL
Di default, OpenSSL su Windows 10 non viene fornito con un file di configurazione. Questo è intenzionale perché ci sono molte opzioni di configurazione che puoi personalizzare. Per scopi di questa guida, utilizzerai una configurazione di esempio che potrai personalizzare in seguito per soddisfare al meglio le tue esigenze di sicurezza.
Apri PowerShell e esegui il comando seguente. Questo comando scarica un file di configurazione di esempio dal MIT e lo salva come openssl.cnf nella directory di lavoro corrente.
Ora puoi aprire il file openssl.cnf e dovresti vedere qualcosa di simile a quanto riportato di seguito.

La configurazione scaricata funzionerà così com’è per ora. Non utilizzare le impostazioni predefinite in un ambiente di produzione!
Aggiorna le variabili d’ambiente del profilo di PowerShell
Per facilitare le cose, dovresti modificare il tuo profilo di PowerShell su Windows 10. La configurazione di alcune variabili d’ambiente ti permette di passare facilmente tra diverse versioni di OpenSSL che potresti avere installato.
I suggest adding two environment variables to your PowerShell profile called path
and OPENSSL_CONF
. You will update the PATH
environment variable to ensure you can run the openssl binary in any location while on the command line.
Di seguito vedrai un modo per creare un profilo di PowerShell se non ne hai già uno. Questo comando aggiunge il percorso binario di OpenSSL alla tua variabile PATH
e assegna il percorso del file di configurazione a OPENSSL_CONF
.
Per utilizzare le variabili d’ambiente, ricarica il tuo profilo digitando . $profile
oppure chiudi e riapri PowerShell.
Ora puoi facilmente invocare il binario di openssl ovunque tu sia in PowerShell come mostrato di seguito.

Utilizzare OpenSSL su Windows 10 per generare un CSR e una chiave privata
Prima di poter creare un certificato SSL, è necessario generare una richiesta di firma del certificato (CSR) . Un CSR è un file codificato che fornisce un modo per condividere la propria chiave pubblica con un’autorità di certificazione (CA). Questo file contiene informazioni di identificazione, un algoritmo di firma e una firma digitale. Creiamo la tua prima CSR e chiave privata.
Correlato: La tua guida ai certificati X509 per i mortali
Per creare una CSR, esegui il seguente comando. OpenSSL ti chiederà di inserire alcune informazioni di identificazione, come puoi vedere nella seguente dimostrazione.

Una volta completato, avrai una CSR valida e una chiave privata che potranno essere utilizzate per emetterti un certificato SSL.
Le impostazioni predefinite del file di configurazione possono essere ulteriormente modificate per semplificare questo processo nel caso in cui non si desideri inserire i dati ogni volta che si genera una CSR.
Puoi leggere ulteriori informazioni sulle opzioni CSR disponibili e visualizzare configurazioni di esempio nelle pagine del manuale. OpenSSL ha anche un repository GitHub attivo con esempi.
Generazione di coppie di chiavi RSA
È anche possibile creare coppie di chiavi RSA (pubbliche/private) con OpenSSL. Per farlo, crea prima una chiave privata utilizzando il sotto-comando genrsa
come mostrato di seguito.
Quando esegui il comando di seguito, OpenSSL su Windows 10 genererà una chiave privata RSA con una lunghezza di chiave di 2048 bit. Questa chiave viene generata quasi istantaneamente su hardware moderno. La chiave risultante viene visualizzata nella directory di lavoro.
Successivamente, genera una chiave pubblica usando la chiave privata appena creata utilizzando il sottocomando rsa
. La sintassi seguente creerà una chiave pubblica chiamata rsa.public nella directory di lavoro dalla chiave privata rsa.private.
Generazione di un certificato auto-firmato
A volte potrebbe essere necessario generare un certificato auto-firmato. I certificati auto-firmati vanno bene per l’uso in laboratorio, ma non sono una pratica sicura da utilizzare in un ambiente di produzione.
Creiamo un certificato auto-firmato prima di passare al compito successivo. Per farlo, inserisci il comando seguente per creare un certificato SSL X509. Questo certificato utilizzerà la crittografia SHA256 che sarà valido per 365 giorni utilizzando una lunghezza di chiave RSA di 2048 bit. Il certificato verrà salvato nella directory di lavoro.
Ora sei pronto per importare il certificato in un browser o server.
Convalida di CSR, certificati e chiavi con OpenSSL
Verificare le informazioni in un CSR, chiave privata, certificato o PKCS#12 può risparmiarti tempo nella risoluzione degli errori SSL. A volte potrebbe essere stata utilizzata una chiave errata per creare un certificato, ad esempio. Potresti avere informazioni di identificazione errate nel certificato.
Iniziamo verificando un CSR utilizzando il comando req
e alcuni parametri:

I dettagli come il nome del paese, il nome dell’organizzazione e l’indirizzo email inseriti durante la creazione del CSR all’inizio di questa guida, dovrebbero corrispondere precisamente.
Puoi anche verificare un certificato utilizzando il sotto-comando x509
con un paio di parametri:

Conversione dei certificati con OpenSSL
Ci sono occasioni in cui un’applicazione non utilizza un formato di certificato particolare. Puoi incontrare questo problema con un’applicazione chiamata HAproxy, ad esempio, che richiede un certificato PEM quando potresti avere un certificato nel formato DER (.crt .cer .der).
Per mostrare come convertire un certificato, convertiamo il certificato autofirmato creato in precedenza in formato DER (certificate.crt) in formato PEM. Utilizza il codice nel seguente frammento di codice per farlo.
Il comando seguente utilizza il sotto-comando x509
con il parametro -inform
che dovrebbe corrispondere al formato del file -in
seguito dal formato -out
.
Puoi anche invertire l’ordine se desideri convertire da PEM a formato DER, come mostrato di seguito.
E per ultimo, è possibile convertire PKCS#12 in formato PEM e PEM in formato PKCS#12. Questo è un tipo di file che contiene chiavi private e certificati. Per convertire in formato PEM, utilizzare il sotto-comando pkcs12
.
È anche possibile convertire un certificato PEM e una chiave privata in formato PKCS#12 utilizzando -export
con alcune opzioni aggiuntive. Di seguito viene esportato un certificato in formato PKCS#12 utilizzando la chiave privata, utilizzando SomeCertificate.crt
come sorgente di input. Utilizzando il valore dell’opzione -certfile
MyCACert.crt
è possibile convalidare SomeCertificate.crt
.
Risoluzione dei problemi e debug
Ora che è possibile creare e convertire CSR, certificati e coppie di chiavi, è il momento di imparare come risolvere i problemi e fare il debug. OpenSSL dispone di comandi che rendono molto semplice risolvere i problemi.
OpenSSL consente anche di verificare l’integrità dei certificati e testare eventuali corruzioni dei dati. Utilizzando un checksum MD5, è possibile utilizzare i seguenti esempi di codice per testare certificati, chiavi e CSR.
Una volta ottenuto l’hash originale, è possibile confrontarlo con un hash corrente per verificare che il certificato non sia stato modificato o corrotto.
Ecco un esempio di come appare quel codice quando viene eseguito in PowerShell:

Riepilogo
In questo articolo, hai imparato come installare e configurare OpenSSL su Windows 10, creare un CSR, una coppia di chiavi e un certificato SSL. Hai anche imparato come convertire tra diversi formati di certificato e fare alcuni troubleshooting di base utilizzando i sottocomandi integrati.