0Pricing
Cryptology Academy · Lezione

Fondamenti della riga di comando di OpenSSL

Padroneggi i comandi OpenSSL essenziali per generare chiavi, eseguire cifratura e hashing e ispezionare i certificati.

Fondamenti della riga di comando di OpenSSL è una lezione Cryptology Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Cryptology Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Cryptology Academy include 4 lezioni in totale.

Versione e informazioni sulla build di OpenSSL

Il comando "openssl version -a" visualizza la versione di OpenSSL, la data di compilazione, il compilatore e le opzioni configurate. Verificare la versione è importante perché le funzionalità e le impostazioni predefinite crittografiche differiscono significativamente tra OpenSSL 1.0.x, 1.1.x e 3.x. Molti algoritmi meno recenti sono disabilitati per impostazione predefinita nelle versioni più nuove per motivi di sicurezza.

Generazione di chiavi RSA

Il comando "openssl genrsa -out private.pem 4096" genera una chiave privata RSA di 4096 bit in formato PEM. Per l'uso in produzione, 2048 bit è il minimo, 3072 bit offre circa 128 bit di sicurezza e 4096 bit fornisce un margine aggiuntivo. Le chiavi possono essere cifrate con AES quando sono archiviate aggiungendo "-aes256" al comando; verrà richiesta una passphrase.

Generazione di chiavi EC

Le chiavi a curva ellittica vengono generate in due passaggi. Primo: "openssl ecparam -name prime256v1 -genkey -noout -out ec_private.pem" genera una chiave privata EC utilizzando la curva P-256. In alternativa: "openssl genpkey -algorithm EC -pkeyopt ec_paramgen_curve:P-384 -out ec_private.pem", utilizzando l'interfaccia genpkey più recente, preferita per il nuovo codice.

Visualizzazione dei dettagli della chiave

Il contenuto delle chiavi può essere esaminato con "openssl rsa -text -noout -in private.pem" per le chiavi RSA, mostrando il modulo, l'esponente pubblico e i fattori primi. Per le chiavi EC, "openssl ec -text -noout -in ec_private.pem" mostra il nome della curva e il valore della chiave. Il flag "-noout" impedisce la visualizzazione dell'output codificato in PEM.

Generazione di dati casuali

OpenSSL può generare byte casuali crittograficamente sicuri: "openssl rand -hex 32" restituisce 32 byte casuali in formato esadecimale, ovvero 64 caratteri esadecimali, adatti a generare chiavi simmetriche o nonce. "openssl rand -base64 32" restituisce byte casuali codificati in Base64. Questa operazione utilizza la sorgente di entropia del sistema operativo (/dev/urandom nei sistemi Unix).

Calcolo degli hash

Il comando "openssl dgst" calcola i digest dei messaggi: "openssl dgst -sha256 file.txt" calcola l'hash SHA-256 di un file. "openssl dgst -sha256 -hmac key file.txt" calcola un HMAC-SHA256. "openssl dgst -sha256 -sign private.pem -out sig.bin file.txt" crea una firma digitale del file.

Cifratura dei file

La cifratura simmetrica dei file usa "openssl enc -aes-256-cbc -pbkdf2 -in plaintext.txt -out encrypted.bin". Il flag "-pbkdf2" usa PBKDF2 per derivare la chiave dalla passphrase, sostituendo EVP_BytesToKey, ormai deprecato. Per la decifratura: "openssl enc -d -aes-256-cbc -pbkdf2 -in encrypted.bin -out decrypted.txt". Per il nuovo codice sono preferibili modalità AEAD come AES-256-GCM.

Conversione tra i formati PEM e DER

Certificati e chiavi sono disponibili in due formati di codifica. PEM è codificato in base64 e include righe di intestazione e chiusura (-----BEGIN CERTIFICATE-----); è usato dalla maggior parte degli strumenti Unix. DER è una codifica binaria, usata da Java e Windows. Per convertire PEM in DER: "openssl x509 -inform PEM -outform DER -in cert.pem -out cert.der". Per convertire DER in PEM, invertire i flag -inform/-outform.

Verifica delle firme

Per verificare una firma digitale: "openssl dgst -sha256 -verify public.pem -signature sig.bin file.txt". Prima è necessario estrarre la chiave pubblica: "openssl rsa -pubout -in private.pem -out public.pem". Per la verifica basata su certificati, "openssl verify -CAfile ca.pem cert.pem" verifica il certificato rispetto alla catena di CA specificata.

Controllo dei dettagli dei certificati

L'ispezione dei certificati è una delle attività OpenSSL più comuni: "openssl x509 -text -noout -in cert.pem" visualizza tutti i campi del certificato, inclusi subject, issuer, date di validità, SAN ed estensioni. "openssl x509 -enddate -noout -in cert.pem" mostra solo la data di scadenza, una funzione utile negli script di monitoraggio.

Connessione ai server TLS

"openssl s_client -connect example.com:443 -servername example.com" instaura una connessione TLS e visualizza la catena di certificati del server, la versione TLS negoziata e la suite di cifratura. Aggiungendo "-showcerts" vengono visualizzati tutti i certificati della catena. È indispensabile per il debug dei problemi relativi alla catena di certificati, alla versione TLS e all'OCSP stapling.

Controllo di openssl genrsa

Che cosa fa il comando "openssl genrsa -aes256 -out private.pem 2048"?

Riepilogo della lezione: nozioni di base della CLI di OpenSSL

OpenSSL mette a disposizione comandi per la generazione delle chiavi (genrsa, genpkey), la conversione dei formati (PEM/DER), la generazione di dati casuali (rand), il calcolo degli hash e la firma (dgst), la cifratura dei file (enc), l'ispezione dei certificati (x509 -text), la verifica delle catene (verify) e il debug TLS (s_client). Questi comandi coprono la stragrande maggioranza delle attività quotidiane relative a certificati e crittografia.

Domande Frequenti

La lezione «Fondamenti della riga di comando di OpenSSL» è gratuita?

Sì — il testo completo di «Fondamenti della riga di comando di OpenSSL» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Cryptology Academy, passa a CoddyKit PRO. Il corso Cryptology Academy include 4 lezioni in totale.

Cosa imparerò in «Fondamenti della riga di comando di OpenSSL»?

Padroneggi i comandi OpenSSL essenziali per generare chiavi, eseguire cifratura e hashing e ispezionare i certificati. Eserciti Cryptology Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Cryptology Academy?

Non è richiesta alcuna esperienza precedente. Cryptology Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «Fondamenti della riga di comando di OpenSSL»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Cryptology Academy?

Sì. Ogni lezione Cryptology Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Fondamenti della riga di comando di OpenSSL
  2. Creazione e gestione delle catene di certificati
  3. OCSP Stapling e Certificate Transparency
  4. Let's Encrypt e automazione del protocollo ACME
← Torna a Cryptology Academy