bg-tutorials

Come generare un CSR in Ubuntu

Questo tutorial ti mostra come generare un CSR su Ubuntu, in particolare su un server Apache basato su Ubuntu raggiunto tramite SSH. Ubuntu usa OpenSSL per questo scopo, quindi eseguirai due operazioni con un unico comando: una nuova chiave privata e il relativo CSR (Certificate Signing Request). Puoi passare i dettagli del soggetto come flag, il che permette di ridurre tutto il processo a una singola riga da copiare e incollare.

I passaggi seguenti funzionano su ogni release Ubuntu supportata (22.04, 24.04 e 26.04 LTS), poiché ciascuna include OpenSSL 3.x. Funzionano anche su release precedenti come 20.04, che include OpenSSL 1.1.1, anche se 20.04 ha raggiunto la fine del suo supporto standard. OpenSSL moderno firma la richiesta con SHA-256 per impostazione predefinita, quindi non è necessario aggiungere un flag per il digest.

Passaggio 1: Accedi al tuo server Ubuntu

Connettiti al server tramite SSH dal tuo computer locale (Terminale su macOS o Linux, PowerShell o Windows Terminal su Windows). Sostituisci il nome utente e l’host con i tuoi:

ssh your-user@your-ubuntu-server

Genera il CSR sullo stesso server che ospiterà il certificato. La chiave privata viene creata insieme al CSR e deve rimanere su quel server, quindi eseguire questi comandi in locale e poi copiare la chiave altrove vanifica lo scopo dell’operazione.

Passaggio 2: Genera la chiave privata e il CSR

Esegui il comando seguente. Crea una chiave RSA a 2048 bit e un CSR in un unico passaggio, con il soggetto e i Subject Alternative Names (SAN) forniti inline in modo che OpenSSL non si interrompa per fare domande:

openssl req -new -newkey rsa:2048 -nodes 
-keyout yourdomain.key 
-out yourdomain.csr 
-subj "/C=US/ST=YourState/L=YourCity/O=YourCompany/CN=yourdomain.com" 
-addext "subjectAltName=DNS:yourdomain.com,DNS:www.yourdomain.com"

Cosa fa ciascuna parte:

  • -newkey rsa:2048 genera una nuova chiave RSA a 2048 bit. 2048 bit è il minimo attuale per i certificati pubblici; puoi usare rsa:4096 per una chiave più grande, oppure passare a ECDSA (vedi sotto).
  • -nodes lascia la chiave privata non cifrata, così Apache può leggerla all’avvio senza richiedere una passphrase.
  • -keyout e -out assegnano il nome ai file della chiave privata e del CSR.
  • -subj fornisce il soggetto del certificato. Inserisci qui il vero nome della tua azienda, stato e città, non i segnaposto. CN (Common Name) è il tuo dominio principale.
  • -addext “subjectAltName=…” elenca ogni hostname che il certificato deve coprire. Le CA pubbliche validano in base all’elenco SAN, quindi includi anche qui il Common Name.

Sostituisci yourdomain.com con il tuo dominio effettivo in tutti i punti. Per coprire hostname aggiuntivi, aggiungili all’elenco SAN separati da virgole, ad esempio DNS:api.yourdomain.com. Per un wildcard, includi sia il wildcard che il dominio semplice: DNS:*.yourdomain.com,DNS:yourdomain.com.

Se preferisci una chiave ECDSA (più piccola e veloce, con P-256 ampiamente supportato), genera la chiave e il CSR in questo modo:

openssl req -new -newkey ec -pkeyopt ec_paramgen_curve:prime256v1 -pkeyopt ec_param_enc:named_curve -nodes 
-keyout yourdomain.key 
-out yourdomain.csr 
-subj "/C=US/ST=YourState/L=YourCity/O=YourCompany/CN=yourdomain.com" 
-addext "subjectAltName=DNS:yourdomain.com,DNS:www.yourdomain.com"

Passaggio 3: Individua i tuoi file

Elenca la directory corrente per confermare che entrambi i file siano stati creati:

ls

Dovresti vedere due nuovi file:

  • yourdomain.key: la tua chiave privata. Conservala sul server, eseguine un backup sicuro e non inviarla mai a nessuno, nemmeno alla Certificate Authority. Chiunque possieda la chiave può impersonare il tuo sito.
  • yourdomain.csr: la tua Certificate Signing Request. Questo è il file che invii al provider SSL.

Passaggio 4: Verifica il CSR (opzionale ma consigliato)

Prima di inviarlo, controlla che il CSR contenga il soggetto e i SAN corretti e che la sua firma sia valida. Questo comando decodifica la richiesta localmente con OpenSSL:

openssl req -noout -text -verify -in yourdomain.csr

Conferma che la riga Subject mostri i tuoi dati, che X509v3 Subject Alternative Name elenchi ogni hostname previsto e che il controllo della firma stampi verify OK. L’algoritmo di firma dovrebbe essere sha256WithRSAEncryption (o ecdsa-with-SHA256 per una chiave ECDSA). Se preferisci non usare la riga di comando, incolla il CSR nel nostro decodificatore CSR online per leggere gli stessi campi nel browser.

Passaggio 5: Invia il tuo CSR

Per copiare il CSR per il tuo ordine, stampa il suo contenuto:

cat yourdomain.csr

Vedrai un blocco di testo simile a questo:

-----BEGIN CERTIFICATE REQUEST-----
MIIBozCB... (a long string of characters)
-----END CERTIFICATE REQUEST-----

Copia l’intero blocco, incluse le righe —–BEGIN CERTIFICATE REQUEST—– e —–END CERTIFICATE REQUEST—– (ogni marcatore ha cinque trattini su entrambi i lati). Quell’intero blocco è il tuo CSR. Incollalo nel modulo d’ordine durante l’acquisto e mantieni la chiave privata corrispondente al suo posto sul server.

Se preferisci non usare la riga di comando, puoi anche creare la richiesta con il nostro generatore di CSR online. Nota che genera la chiave privata nel tuo browser, quindi salva tu stesso quella chiave e spostala sul server.

Dopo che la tua CA ha validato il CSR e rilasciato il certificato, prosegui con le istruzioni per l’installazione SSL su Ubuntu.

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.