bg-tutorials

Come generare il CSR su Red Hat Linux

Questa guida mostra come generare un CSR (Certificate Signing Request) su Red Hat Enterprise Linux utilizzando la riga di comando OpenSSL. Il processo produce due file:

  • Una chiave privata, che resta sul tuo server e non viene mai condivisa.
  • Un CSR, che invii alla tua Certificate Authority (CA) quando ordini il certificato.

Vengono trattati due approcci: un metodo con un singolo comando per OpenSSL moderno, e un metodo basato su file di configurazione per versioni più vecchie di OpenSSL che non supportano le estensioni inline. Entrambi producono un CSR conforme SAN firmato con SHA-256, requisito richiesto dalle CA pubbliche.

Prima di iniziare: controlla la tua versione di OpenSSL

OpenSSL è incluso di default in ogni release RHEL supportata. Verifica che sia presente e controlla la versione, perché questa determina quale metodo qui sotto puoi utilizzare:

openssl version

Ciò che è incluso in ogni attuale release Red Hat:

  • RHEL 10 (rilasciata nel 2025, l’attuale versione principale): OpenSSL 3.x
  • RHEL 9: OpenSSL 3.x
  • RHEL 8: OpenSSL 1.1.1
  • RHEL 7: OpenSSL 1.0.2 (RHEL 7 ha raggiunto la fine del supporto di manutenzione nel 2024; sposta questi carichi di lavoro su una release supportata quando puoi)

OpenSSL 1.1.1 e 3.x supportano il flag di estensione inline utilizzato nel metodo con un solo comando, quindi su RHEL 8, 9 e 10 puoi usare l’Opzione A qui sotto. Se openssl version riporta 1.0.2 o versioni precedenti (RHEL 7), usa il metodo con file di configurazione nell’Opzione B.

Se OpenSSL risultasse assente, installalo con il gestore di pacchetti della tua release:

# RHEL 8, 9, and 10
sudo dnf install openssl
# RHEL 7
sudo yum install openssl

Su RHEL 8 e versioni successive, yum è un alias di compatibilità per dnf, quindi entrambi i comandi funzionano su queste versioni.

Opzione A: un solo comando (OpenSSL 1.1.1 e 3.x)

Questo è il percorso più rapido su RHEL 8, 9 e 10. Genera prima la chiave privata, poi costruisce il CSR con i Subject Alternative Names (SAN) aggiunti inline.

Passo 1: Genera la chiave privata

openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out example.com.key

Questo crea una chiave privata RSA a 2048 bit chiamata example.com.key nella directory corrente. RSA a 2048 bit è il minimo accettato dalle CA pubbliche; per una chiave moderna a curva elittica, sostituisci le opzioni dell’algoritmo con -algorithm EC -pkeyopt ec_paramgen_curve:P-256. Mantieni questo file privato: resta sul tuo server e non viene mai inviato alla CA.

Passo 2: Crea il CSR con i SAN

Esegui il seguente comando, modificando i campi del subject e i nomi di dominio in base ai tuoi dati:

openssl req -new -sha256 -key example.com.key -out example.com.csr 
-subj "/C=US/ST=California/L=San Jose/O=Your Company LLC/CN=example.com" 
-addext "subjectAltName=DNS:example.com,DNS:www.example.com"

Sostituisci example.com con il tuo dominio effettivo ovunque, e imposta i campi del subject con i tuoi dati:

  • C: codice paese di due lettere (ad esempio, US).
  • ST: nome completo dello stato o della provincia.
  • L: città o località.
  • O: nome legale dell’organizzazione (per un certificato DV su singolo dominio può essere omesso).
  • CN: il nome di dominio completamente qualificato principale, ad esempio www.example.com.

Elenca ogni nome host che il certificato deve coprire nel valore di subjectAltName. I browser moderni convalidano in base all’elenco SAN, non al Common Name, quindi includi ogni nome lì, incluso il dominio principale. Il comando scrive il CSR nel file example.com.csr.

Opzione B: metodo con file di configurazione (OpenSSL meno recente)

Se openssl version riporta una build che non supporta il flag -addext (OpenSSL 1.0.2 e versioni precedenti, come su RHEL 7), definisci i SAN in un piccolo file di configurazione.

Passo 1: Crea un file di configurazione (san.cnf)

Crea un file chiamato san.cnf con un editor di testo e incolla quanto segue, modificando i valori per il tuo dominio e la tua organizzazione:

[ req ]
default_bits = 2048
prompt = no
distinguished_name = dn
req_extensions = req_ext

[ dn ]
C = US
ST = California
L = San Jose
O = Your Company LLC
CN = example.com

[ req_ext ]
subjectAltName = @alt_names

[ alt_names ]
DNS.1 = example.com
DNS.2 = www.example.com

Aggiungi altri nomi host continuando la numerazione: DNS.3, DNS.4, e così via.

Passo 2: Genera la chiave e il CSR

Genera la chiave privata:

openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out example.com.key

Poi crea il CSR utilizzando il file di configurazione:

openssl req -new -sha256 -key example.com.key -out example.com.csr -config san.cnf

Verifica il CSR

Prima di inviarlo, verifica che il CSR contenga i dati corretti e una firma valida. Questo comando mostra il subject, l’elenco SAN, la dimensione della chiave, e verifica la firma autofirmata della richiesta:

openssl req -noout -text -verify -in example.com.csr

Controlla che la riga Subject e le voci X509v3 Subject Alternative Name elenchino ogni dominio previsto, che la chiave pubblica sia almeno RSA a 2048 bit (o una chiave a curva elittica P-256), e che l’algoritmo di firma sia SHA-256. Una riga che riporta certificate request self-signature verify OK (le build più vecchie riportano verify OK) significa che il CSR e la chiave privata corrispondono. Se preferisci un browser, incolla il CSR nel nostro decoder CSR online per rivedere gli stessi dettagli.

Invia il CSR

Apri il file example.com.csr con un editor di testo e copia il suo intero contenuto, inclusi i marcatori -----BEGIN CERTIFICATE REQUEST----- e -----END CERTIFICATE REQUEST----- (ciascun marcatore usa cinque trattini su entrambi i lati). Incolla l’intero blocco nel modulo d’ordine quando richiedi il certificato dal tuo fornitore SSL.

Conserva la chiave privata, example.com.key, sul server. Non inviarla alla CA né incollarla da nessuna parte: è la metà segreta della coppia e non deve mai uscire dal tuo controllo. Dopo che la CA ha convalidato il CSR ed emesso il certificato, segui le nostre istruzioni per l’installazione SSL su Red Hat Linux per installarlo.

Domande Frequenti

Dove viene memorizzata la chiave privata quando genero un CSR su RHEL?

La chiave privata viene scritta nel file che indichi nell’opzione -out (ad esempio, example.com.key) nella directory in cui hai eseguito il comando. Viene creata localmente e non è mai incluso nel CSR. Fai un backup in un luogo sicuro e limita i suoi permessi, perché ti serve esattamente questa chiave per installare il certificato emesso dalla CA.

Dovrei usare RSA o ECDSA per la chiave?

Entrambi sono accettati. RSA a 2048 bit è il valore predefinito ampiamente compatibile e il minimo consentito dalle CA pubbliche. Una chiave a curva elittica (ECDSA P-256) è più piccola e più veloce offrendo una sicurezza equivalente; generane una sostituendo le opzioni della chiave con -algorithm EC -pkeyopt ec_paramgen_curve:P-256. In ogni caso, il CSR deve essere firmato con SHA-256, cosa che i comandi sopra già fanno.

La mia versione di OpenSSL non supporta -addext. Cosa devo fare?

Il flag -addext è stato introdotto in OpenSSL 1.1.1. Se hai una build più vecchia (OpenSSL 1.0.2 su RHEL 7, ad esempio), usa il metodo con file di configurazione dell’Opzione B, che definisce i Subject Alternative Names in un file san.cnf invece che sulla riga di comando.

Come posso verificare che il mio CSR sia corretto prima di ordinare?

Esegui openssl req -noout -text -verify -in example.com.csr sul server. Mostra il subject, l’elenco completo dei SAN, il tipo e la dimensione della chiave, e l’algoritmo di firma, e confirma che il CSR corrisponda alla sua chiave privata. Rivedi questi campi prima di incollare il CSR nel modulo d’ordine.

Quale parte del CSR devo incollare nel modulo d’ordine?

Incolla l’intero blocco, da -----BEGIN CERTIFICATE REQUEST----- fino a -----END CERTIFICATE REQUEST----- incluso, senza omettere alcun carattere. Entrambe le righe marcatore usano cinque trattini su ciascun lato. Non incollare la chiave privata.

Funziona nello stesso modo su AlmaLinux, Rocky Linux e CentOS?

Sì. AlmaLinux, Rocky Linux e CentOS Stream sono compatibili a livello binario con la release RHEL corrispondente e includono la stessa versione di OpenSSL, quindi i comandi sono identici. Abbiamo anche un tutorial dedicato su come generare un CSR su CentOS se ti serve.

Risparmia il 10% sui certificati SSL ordinando oggi stesso da SSL Dragon!

Emissione rapida, crittografia avanzata, affidabilità del browser al 99,99%, assistenza dedicata e garanzia di rimborso entro 25 giorni. Codice coupon: SAVE10

Un'immagine dettagliata di un drago in volo
Scritto da

Scrittore di contenuti con esperienza, specializzato in certificati SSL. Trasforma intricati argomenti di cybersicurezza in contenuti chiari e coinvolgenti. Contribuisci a migliorare la sicurezza digitale attraverso narrazioni d'impatto.