Questa guida mostra come generare una CSR (Certificate Signing Request) su Debian utilizzando la riga di comando OpenSSL. Esegui un singolo comando via SSH che crea due file contemporaneamente: una chiave privata che rimane sul tuo server e la CSR che invii alla tua Certificate Authority (CA). I passaggi funzionano su Debian 13 (trixie), Debian 12 (bookworm) e versioni precedenti, poiché OpenSSL è incluso nel sistema base.
Una CSR è un piccolo blocco di testo che contiene i dettagli del tuo dominio e una chiave pubblica. La CA lo legge, valida la tua richiesta ed emette un certificato che corrisponde alla chiave privata creata insieme ad essa. La chiave privata non lascia mai il tuo server, quindi conservala con cura: se la perdi, il certificato emesso diventa inutilizzabile e devi ripartire da zero.
Passo 1: Accedi al tuo server Debian
Apri un terminale e connettiti al server via SSH. Sostituisci your-user con il nome del tuo account e your-server-ip con l’indirizzo IP o l’hostname del server:
ssh your-user@your-server-ip
OpenSSL è incluso nel sistema base di Debian, quindi non c’è nulla da installare in più. Per confermare che sia disponibile, controlla la versione:
openssl version
Passo 2: Genera la chiave privata e la CSR
Esegui il comando riportato di seguito. Crea la chiave privata e la CSR in un solo passaggio e include i Subject Alternative Names (SAN) richiesti dai browser moderni e dalle CA. Eseguilo da una directory su cui hai i permessi di scrittura, come la tua home directory:
openssl req -new -newkey rsa:2048 -nodes
-keyout mywebsite.key
-out mywebsite.csr
-subj "/C=US/ST=YourState/L=YourCity/O=YourCompany/CN=mywebsite.com"
-addext "subjectAltName=DNS:mywebsite.com,DNS:www.mywebsite.com"
Ecco cosa fa ciascuna parte:
- req -new crea una nuova richiesta di firma del certificato.
- -newkey rsa:2048 genera una nuova chiave privata RSA a 2048 bit. 2048 bit è il minimo attuale per i certificati pubblici; puoi usare rsa:4096 per una chiave più grande.
- -nodes lascia la chiave privata non cifrata (senza passphrase), così il server web può avviarsi senza richiedere una password.
- -keyout mywebsite.key scrive la chiave privata. Mantieni questo file privato e non inviarlo mai a nessuno.
- -out mywebsite.csr scrive la CSR che invii alla CA.
- -subj compila i campi del soggetto in linea, così il comando viene eseguito senza richieste interattive. Imposta CN (Common Name) con il tuo nome di dominio completamente qualificato.
- -addext “subjectAltName=…” aggiunge le voci SAN. Le CA emettono i certificati in base all’elenco SAN, quindi includi ogni hostname che il certificato deve coprire.
Sostituisci mywebsite.com con il tuo dominio reale e modifica i valori di -subj in base alla tua organizzazione. Il codice paese di due lettere (C) deve essere in maiuscolo, ad esempio US o GB. Per un certificato a validazione di dominio (DV), i campi dell’organizzazione non vengono verificati, ma il comando necessita comunque di valori validi.
Se preferisci compilare i campi in modo interattivo invece che con -subj, elimina quella riga e OpenSSL ti chiederà ogni valore:
openssl req -new -newkey rsa:2048 -nodes
-keyout mywebsite.key
-out mywebsite.csr
-addext "subjectAltName=DNS:mywebsite.com,DNS:www.mywebsite.com"
Quando richiesto, lascia vuoti la challenge password e il nome azienda opzionale premendo Invio. Le CA ignorano quei campi, e una challenge password può causare problemi in seguito.
Aggiungere altri domini o un carattere wildcard
Aggiungi altri hostname all’elenco SAN, separati da virgole. Ad esempio, per includere un sottodominio API:
-addext "subjectAltName=DNS:mywebsite.com,DNS:www.mywebsite.com,DNS:api.mywebsite.com"
Per un certificato wildcard, usa *.mywebsite.com. Un wildcard copre un livello di sottodomini ma non il dominio nudo, quindi elenca entrambi se vuoi che anche l’apice sia coperto:
-addext "subjectAltName=DNS:*.mywebsite.com,DNS:mywebsite.com"
Preferisci una chiave ECDSA?
Le chiavi ECDSA sono più piccole e veloci rispetto a RSA allo stesso livello di sicurezza e sono ampiamente supportate. Per generare invece una chiave e una CSR P-256 (prime256v1), sostituisci l’argomento -newkey:
openssl req -new -newkey ec -pkeyopt ec_paramgen_curve:prime256v1 -pkeyopt ec_param_enc:named_curve -nodes
-keyout mywebsite.key
-out mywebsite.csr
-subj "/C=US/ST=YourState/L=YourCity/O=YourCompany/CN=mywebsite.com"
-addext "subjectAltName=DNS:mywebsite.com,DNS:www.mywebsite.com"
Le versioni moderne di OpenSSL firmano la CSR con SHA-256 per impostazione predefinita, che è ciò che le CA richiedono. Non c’è bisogno di aggiungere un flag di digest separato.
Passo 3: Verifica la CSR
Prima di inviare la richiesta, conferma che contenga il dominio e i SAN corretti e che la sua firma sia valida. Questo comando stampa il contenuto decodificato e verifica la firma localmente:
openssl req -noout -text -verify -in mywebsite.csr
Cerca verify OK nell’output, controlla che la riga Subject mostri il tuo Common Name e conferma che la sezione X509v3 Subject Alternative Name elenchi ogni hostname previsto. Se manca un SAN, rigenera la CSR con il valore -addext corretto. Puoi anche incollare la CSR nel nostro decodificatore CSR online per controllare questi campi da browser.
Passo 4: Invia la CSR
Apri il file CSR e copia tutto il suo contenuto, incluse le righe BEGIN e END:
cat mywebsite.csr
Il blocco appare così. Copia tutto dalla prima all’ultima riga, incluse le cinque trattini su ciascun lato dei marcatori BEGIN e END:
-----BEGIN CERTIFICATE REQUEST-----
MIIC...base64-encoded data...AB
-----END CERTIFICATE REQUEST-----
Incolla quel blocco nel tuo modulo d’ordine SSL. Dopo che la CA valida la CSR ed emette il certificato SSL, segui le istruzioni per l’installazione SSL su Debian per implementarlo. Conserva il file mywebsite.key sul server: ti serve insieme al certificato emesso per attivare HTTPS, e non devi mai inviarlo alla CA o a chiunque altro.
Se preferisci non usare la riga di comando, puoi creare la richiesta con il nostro CSR Generator e incollare il risultato nel tuo ordine.
Genera una CSR su altre piattaforme
Utilizzi una distribuzione Linux o un server diverso? Consulta le nostre altre guide sulla CSR:
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

