Questo tutorial ti mostra come generare una CSR (Certificate Signing Request) su Webmin. Webmin è un pannello di controllo basato su browser per server Linux, quindi hai due modi pratici per creare la CSR: tramite i moduli SSL integrati di Webmin (un modulo grafico per il pannello Webmin stesso o per un virtual host Apache) oppure con la riga di comando OpenSSL tramite il terminale integrato di Webmin. Il metodo OpenSSL è il più flessibile e produce una chiave e una CSR utilizzabili con qualsiasi server web (Apache, Nginx, Lighttpd o qualsiasi altro servizio gestito da Webmin).
I passaggi seguenti presuppongono Webmin 2.x e OpenSSL 3.x moderni, che sono le versioni attuali su ogni distribuzione Linux supportata nel 2026 (Ubuntu 22.04 / 24.04 / 26.04, Debian 12 e 13, RHEL 9 e 10, Rocky 9 e 10, AlmaLinux 9 e 10, openSUSE Leap 15.6 e Tumbleweed). Il risultato è una CSR standard codificata in PEM e firmata con SHA-256, accettata da qualsiasi Certificate Authority pubblica.
Passaggio 1: Accedi a Webmin
Apri Webmin in un browser all’URL del tuo server sulla porta 10000:
https://yourwebsite.com:10000
Sostituisci yourwebsite.com con il nome host o l’indirizzo IP del tuo server. La porta 10000 è la porta predefinita di Webmin. Accedi con l’account root o con un utente Webmin che abbia i permessi per gestire SSL.
Passaggio 2: Apri il terminale di Webmin
Webmin 2.x è fornito con un terminale integrato che puoi usare senza aprire una sessione SSH separata. Nel riquadro a sinistra, appena sotto il link Refresh Modules, clicca sull’icona Terminal (la seconda icona da sinistra), oppure premi Alt + K per aprirlo. Apparirà un prompt di shell, eseguito con l’utente con cui hai effettuato l’accesso.
Se preferisci una connessione SSH diretta dalla tua macchina, collegati allo stesso server ed esegui lì il comando del passaggio successivo. Il risultato è identico.
Passaggio 3: Genera la chiave privata e la CSR con OpenSSL
Nel terminale, esegui il comando seguente. Crea una chiave RSA a 2048 bit e una CSR corrispondente in un solo passaggio, con il subject e i Subject Alternative Names (SAN) forniti in linea in modo che OpenSSL non si interrompa per fare domande interattive:
sudo openssl req -new -newkey rsa:2048 -noenc
-keyout /etc/ssl/private/yourwebsite.com.key
-out /etc/ssl/private/yourwebsite.com.csr
-subj "/C=US/ST=California/L=San Jose/O=Your Company LLC/CN=yourwebsite.com"
-addext "subjectAltName=DNS:yourwebsite.com,DNS:www.yourwebsite.com"
Su Debian e Ubuntu, la directory /etc/ssl/private/ esiste già. Su RHEL, Rocky, AlmaLinux e Fedora, la convenzione è /etc/pki/tls/private/ per le chiavi e /etc/pki/tls/certs/ per la CSR. Scegli percorsi che il tuo server web possa leggere, oppure salva i file nella tua home directory e spostali in seguito. Se la directory di destinazione non esiste, creala prima con sudo mkdir -p /etc/ssl/private.
Cosa fa ciascuna parte del comando:
- -newkey rsa:2048 genera una nuova chiave RSA a 2048 bit. 2048 bit è l’attuale minimo per i certificati pubblici. Usa rsa:4096 per una chiave più grande, oppure passa a ECDSA (vedi sotto).
- -noenc lascia la chiave privata non cifrata in modo che il server web possa leggerla all’avvio senza richiedere una passphrase. (In OpenSSL 1.x il flag equivalente è -nodes; entrambi funzionano ancora in OpenSSL 3.x.)
- -keyout e -out indicano il nome del file della chiave privata e del file CSR.
- -subj fornisce il subject del certificato in linea. Sostituisci i valori di esempio con i tuoi dati reali:
- C: codice paese di due lettere in cui la tua organizzazione è legalmente registrata (ad esempio, US).
- ST: nome completo dello stato o della provincia (ad esempio, California), senza abbreviazioni.
- L: nome completo della città (ad esempio, San Jose).
- O: nome legale dell’organizzazione. Per un certificato Domain Validation (DV), omettilo oppure impostalo sul tuo dominio.
- CN: Fully Qualified Domain Name (FQDN) del sito che vuoi proteggere (ad esempio, yourwebsite.com).
- -addext “subjectAltName=…” elenca ogni nome host che il certificato deve coprire. Le CA pubbliche validano in base all’elenco SAN, quindi includi qui anche il Common Name. Per un wildcard, includi sia il wildcard che il dominio apice: DNS:*.yourwebsite.com,DNS:yourwebsite.com. I wildcard coprono un solo livello di sottodominio e non corrispondono da soli al dominio apice.
Se preferisci una chiave ECDSA (più piccola e più veloce, con P-256 ampiamente supportato), usa questa variante:
sudo openssl req -new -newkey ec -pkeyopt ec_paramgen_curve:prime256v1 -noenc
-keyout /etc/ssl/private/yourwebsite.com.key
-out /etc/ssl/private/yourwebsite.com.csr
-subj "/C=US/ST=California/L=San Jose/O=Your Company LLC/CN=yourwebsite.com"
-addext "subjectAltName=DNS:yourwebsite.com,DNS:www.yourwebsite.com"
La barra rovesciata alla fine di ogni riga è un carattere di continuazione della shell, quindi il comando rimane un’unica istruzione logica suddivisa su più righe per leggibilità. Se il tuo terminale non gestisce bene il formato multiriga, incolla l’intero comando su una sola riga.
Passaggio 4: Proteggi la chiave privata
Elenca la directory per confermare che entrambi i file siano stati creati:
sudo ls -l /etc/ssl/private/yourwebsite.com.*
Dovresti vedere due nuovi file:
- yourwebsite.com.key: la chiave privata. Deve rimanere sul server, non deve mai essere inviata alla Certificate Authority e non deve mai essere inviata per email o incollata in alcun modulo. Chiunque possieda la chiave può impersonare il tuo sito.
- yourwebsite.com.csr: la Certificate Signing Request. È l’unico file che devi inviare al fornitore SSL.
Limita i permessi sulla chiave privata in modo che solo root possa leggerla:
sudo chmod 600 /etc/ssl/private/yourwebsite.com.key
Sulle distribuzioni con SELinux attivo (RHEL, Rocky, AlmaLinux, Fedora), riapplica il contesto SELinux corretto dopo aver spostato la chiave nella sua posizione finale, ad esempio sudo restorecon -Rv /etc/pki/tls/.
Passaggio 5: Verifica la CSR (opzionale ma consigliato)
Prima di inviare la CSR, verifica che contenga il subject e i SAN corretti e che la sua firma sia valida:
openssl req -noout -text -verify -in /etc/ssl/private/yourwebsite.com.csr
Controlla che la riga Subject corrisponda ai tuoi dati, che X509v3 Subject Alternative Name elenchi ogni nome host previsto e che il controllo della firma stampi verify OK. L’algoritmo di firma dovrebbe leggere sha256WithRSAEncryption (o ecdsa-with-SHA256 per una chiave ECDSA). Se preferisci non usare la riga di comando, incolla il testo della CSR nel nostro decoder CSR online per leggere gli stessi campi in un browser.
Passaggio 6: Copia e invia la CSR
Stampa la CSR per poterla copiare:
sudo cat /etc/ssl/private/yourwebsite.com.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 indicatore ha cinque trattini su entrambi i lati). Incollalo nel modulo d’ordine quando acquisti il tuo certificato SSL, e lascia la chiave privata corrispondente sul server.
Genera una CSR tramite i moduli grafici di Webmin
Se preferisci evitare la riga di comando, Webmin include due moduli grafici che creano una CSR per te. Scegli quello adatto allo scopo del certificato.
Per un virtual host Apache (il tuo sito web)
- Vai su Servers > Apache Webserver.
- Apri la scheda Global Configuration, clicca su Configure Apache Modules, seleziona il modulo ssl e clicca su Enable Selected Modules se non è già attivo.
- Nella scheda Existing virtual hosts, apri il virtual host della porta 443 (o creane uno) cliccando sull’icona globe.
- Nella pagina Virtual Server Options, scegli SSL Options, poi clicca su Create signing request.
- Compila il modulo (paese, stato, città, organizzazione, common name, email, dimensione della chiave 2048 o superiore e qualsiasi Subject Alternative Name), scegli dove Webmin deve scrivere i file .csr e .key, e clicca su Create Now.
I due file appaiono nei percorsi specificati. Usa il .csr per il tuo ordine e mantieni il .key sul server.
Per il pannello Webmin stesso (porta 10000)
Se hai bisogno di un certificato solo per l’interfaccia di accesso a Webmin, non per un sito web, genera la CSR dal modulo di configurazione di Webmin:
- Vai su Webmin > Webmin Configuration > SSL Encryption.
- Apri la scheda Create Signing Request.
- Compila il nome host (il nome pubblico con cui raggiungi Webmin), paese, stato, città, organizzazione, email e dimensione della chiave, poi clicca su Create.
Webmin scrive la richiesta e la chiave corrispondente sotto /etc/webmin/. Dopo che la CA restituisce il certificato emesso, installalo dalla stessa pagina SSL Encryption in modo che sostituisca il file predefinito /etc/webmin/miniserv.pem.
Dopo aver ricevuto il certificato
Una volta che la Certificate Authority valida la tua CSR e rilascia il certificato, installalo sul server. I passaggi esatti dipendono dal servizio per cui è destinato il certificato:
- Installa un certificato SSL su Webmin (Apache tramite Webmin).
- Installa un certificato SSL su Apache direttamente.
- Installa un certificato SSL su Nginx se invece servi i siti con Nginx.
Se preferisci un flusso di lavoro completamente grafico che funziona nel tuo browser, puoi anche creare la CSR con il nostro CSR Generator online. Genera la chiave privata nel tuo browser, quindi salva tu stesso la chiave e spostala sul server prima di completare l’installazione.
Domande frequenti
Dove tu decidi. Con il comando OpenSSL, i file vengono scritti nei percorsi che passi con -keyout e -out. Con il modulo Create signing request di Apache, scegli i percorsi di output nel modulo stesso. Con Webmin > Webmin Configuration > SSL Encryption, Webmin li scrive sotto /etc/webmin/. Su Debian e Ubuntu, il percorso convenzionale per le chiavi è /etc/ssl/private/; su RHEL, Rocky, AlmaLinux e Fedora è /etc/pki/tls/private/.
Entrambi funzionano. Il terminale integrato di Webmin (l’icona nel riquadro a sinistra, oppure Alt + K) è comodo perché sei già collegato, ma lo stesso comando OpenSSL eseguito tramite una normale sessione SSH produce una CSR e una chiave identiche. Usa quello che preferisci.
Fanno la stessa cosa: indicano a OpenSSL di lasciare la chiave privata non cifrata su disco, in modo che il server web possa leggerla all’avvio senza richiedere una passphrase. -nodes è il nome storico e funziona ancora in OpenSSL 3.x. -noenc è l’alias più recente introdotto in OpenSSL 3.0 ed è la forma preferita da ora in avanti. Usa quello che preferisci.
Sì. Una CSR è una richiesta standard codificata in PEM definita dallo standard PKCS #10, e qualsiasi CA può firmarla indipendentemente da dove è stata creata. La CSR generata nel terminale di Webmin, tramite il modulo Create signing request di Apache, oppure con il nostro CSR Generator online, producono tutti lo stesso tipo di file. Ciò che conta è che la chiave privata creata contemporaneamente rimanga sul server su cui intendi installare il certificato.
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


