Questa guida ti mostra come generare una CSR (Certificate Signing Request) su Proxmox VE. Poiché Proxmox Virtual Environment è basato su Debian, si crea la CSR dalla riga di comando tramite SSH utilizzando l’utility OpenSSL, che è preinstallata su ogni nodo. La procedura è identica sia su Proxmox VE 8.x che sulla più recente serie 9.x.
Una CSR è la richiesta codificata che si invia a una Certificate Authority (CA) quando si ordina un certificato SSL/TLS. Generandola, si crea anche una chiave privata corrispondente. La chiave rimane sul nodo Proxmox e non viene mai inviata alla CA, quindi va conservata al sicuro: un certificato funziona solo con la chiave esatta con cui è stato associato.
CSR manuale vs. il client ACME integrato
Proxmox VE include un client ACME integrato (account sotto Datacenter > ACME, con i domini aggiunti per ogni nodo sotto Node > Certificates) che può richiedere e rinnovare automaticamente certificati gratuiti da Let’s Encrypt. Se hai solo bisogno di proteggere l’interfaccia web di Proxmox e un nome host pubblicamente raggiungibile, quella via automatizzata è la scelta più semplice e si rinnova da sola.
Si genera comunque una CSR manualmente quando si acquista un certificato da una CA commerciale, quando serve un tipo che ACME non rilascia (per esempio un certificato Organization Validation, Extended Validation, o wildcard), oppure quando una politica interna richiede di controllare personalmente la chiave e la richiesta. Il resto di questo tutorial tratta questo flusso manuale.
Passo 1: Crea la CSR e la chiave privata
Connettiti al tuo nodo Proxmox via SSH (oppure apri la console Shell nell’interfaccia web di Proxmox). OpenSSL è già installato. Se per qualche motivo manca, installalo prima:
sudo apt-get update && sudo apt-get install openssl
Al prompt, esegui il seguente comando per generare la CSR e la relativa chiave privata in un unico passaggio:
openssl req -new -newkey rsa:2048 -nodes -keyout mywebsite.key -out mywebsite.csr -addext "subjectAltName=DNS:mywebsite.com,DNS:www.mywebsite.com"
Sostituisci mywebsite con un nome che identifichi il tuo dominio, così i file saranno facili da riconoscere in seguito. Ecco cosa fa ciascuna parte del comando:
- req -new crea una nuova richiesta di certificato.
- -newkey rsa:2048 genera una nuova chiave privata RSA a 2048 bit. RSA 2048 è l’attuale requisito minimo per i certificati pubblici; puoi usare rsa:4096 per una chiave più grande, oppure passare a una chiave a curva elittica moderna (vedi le FAQ più sotto).
- -nodes lascia la chiave privata non cifrata, così il servizio Proxmox può leggerla all’avvio senza richiedere una passphrase.
- -keyout mywebsite.key scrive la chiave privata. Conserva questo file sul nodo e non condividerlo mai.
- -out mywebsite.csr scrive la CSR che invierai alla CA.
OpenSSL moderno firma la richiesta con SHA-256 per impostazione predefinita, che è ciò che ogni CA pubblica richiede. Non è necessario aggiungere un flag per un digest più vecchio.
Passo 2: Fornisci le informazioni richieste sul tuo dominio e sulla tua azienda
OpenSSL a questo punto richiede i dettagli che compongono il Distinguished Name del certificato. Rispondi a ciascuno di essi:
- Country Name: il codice ufficiale a due lettere del tuo paese, per esempio IT.
- State or Province: il nome completo della regione o provincia in cui è registrata la tua azienda, per esempio Lombardia.
- City or Locality: il nome completo della città in cui si trova la tua azienda, per esempio Milano.
- Organization Name: il nome legale completo della tua azienda, per esempio La Tua Azienda S.r.l.. Per un certificato Domain Validation (DV), puoi lasciarlo vuoto.
- Organizational Unit Name: lascia questo campo vuoto. È deprecato per i certificati SSL/TLS pubblici e le CA lo rimuovono.
- Common Name: il nome di dominio completamente qualificato (FQDN) che vuoi proteggere, per esempio proxmox.iltuosito.com. Per un certificato Wildcard, metti un asterisco davanti al dominio, per esempio *.iltuosito.com.
- Email Address: un indirizzo email valido (opzionale per la maggior parte delle CA).
- A challenge password: lascia questo campo vuoto. È un campo legacy che le CA pubbliche ignorano.
- An optional company name: lascia questo campo vuoto.
A questo punto OpenSSL scrive la CSR e la chiave privata nella directory da cui hai eseguito il comando. Elenca i file per confermare che siano stati creati:
ls
Dovresti vedere mywebsite.key e mywebsite.csr (o qualsiasi nome tu abbia scelto).
Passo 3: Verifica la CSR prima di inviarla
Prima di inviare la richiesta a una CA, controlla che i dettagli siano corretti e che la firma sia valida. Un errore di digitazione nel Common Name significa una nuova emissione, quindi questo controllo di 10 secondi ne vale la pena:
openssl req -noout -text -verify -in mywebsite.csr
Conferma che la riga Subject mostri il Common Name corretto e i dettagli dell’organizzazione giusti, che la chiave pubblica sia della dimensione che ti aspetti e che OpenSSL segnali la firma automatica come verificata. Se preferisci esaminare la richiesta in un browser, incollala nel nostro decodificatore CSR, che mostra online gli stessi campi decodificati.
Passo 4: Invia la CSR alla tua Certificate Authority
Apri il file CSR in un qualsiasi editor di testo:
cat mywebsite.csr
Durante il processo di ordine dell’SSL, copia l’intero contenuto del file, incluse le righe —–BEGIN CERTIFICATE REQUEST—– e —–END CERTIFICATE REQUEST—–, e incollalo nel campo CSR sul sito del tuo fornitore SSL. Se ometti una delle due righe segnaposto, o anche solo uno dei cinque trattini su ciascun lato, la CA rifiuterà la richiesta.
Dopo che la CA ha validato la CSR e ha emesso il tuo certificato, segui le nostre istruzioni per l’installazione SSL su Proxmox per installarlo sul nodo. Dovrai associare il certificato emesso al file mywebsite.key rimasto sul server.
Domande Frequenti
La chiave privata viene scritta nella directory da cui hai eseguito il comando OpenSSL, con il nome del file che hai passato a -keyout (per esempio mywebsite.key). Non lascia mai il nodo e non viene mai inviata alla CA. Conservala al sicuro e fanne un backup, perché il certificato emesso funziona solo con questa esatta chiave.
Sì. Le chiavi a curva elittica (ECDSA) sono più piccole e più veloci di RSA allo stesso livello di sicurezza e sono supportate da tutte le principali CA. Genera la chiave e la CSR con un unico comando:openssl req -new -newkey ec -pkeyopt ec_paramgen_curve:prime256v1 -nodes -keyout mywebsite.key -out mywebsite.csr -addext "subjectAltName=DNS:mywebsite.com,DNS:www.mywebsite.com"
La curva prime256v1 (chiamata anche P-256) è un’opzione predefinita sicura. Il resto del processo, incluse le richieste del Passo 2, è identico.
No. Per un certificato gratuito Let’s Encrypt su un nome host pubblicamente raggiungibile, il client ACME integrato sotto Datacenter > ACME gestisce la richiesta e la rinnova automaticamente, senza bisogno di una CSR manuale. Genera una CSR a mano quando acquisti da una CA commerciale, oppure quando hai bisogno di un certificato OV, EV o wildcard che la configurazione ACME predefinita non rilascia.
Esegui openssl req -noout -text -in mywebsite.csr per stampare i campi decodificati (Subject, dimensione della chiave e qualsiasi Subject Alternative Name) direttamente sul nodo. Aggiungi il flag -verify per confermare anche che la firma automatica sia valida prima di inviare la richiesta.
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


