bg-tutorials

Come generare un CSR su Tomcat

Questo tutorial mostra come generare una CSR (Certificate Signing Request) per Apache Tomcat utilizzando l’utility Java keytool. Il processo è composto da due comandi: prima keytool -genkeypair crea un keystore e una chiave privata sotto un alias scelto, poi keytool -certreq esporta la CSR corrispondente. Lo stesso alias viene riutilizzato in seguito quando importi il certificato firmato, in modo che la chiave, la CSR e l’eventuale certificato risiedano tutti nello stesso posto.

Cosa ti servirà

  • Un’installazione Java (JDK o JRE) affinché il comando keytool sia disponibile. Verifica con keytool -help.
  • Accesso a shell o terminale sul server che ospiterà la chiave privata. La chiave privata deve rimanere su questo server.
  • Il nome di dominio completamente qualificato (FQDN) esatto che vuoi proteggere, ad esempio www.yourdomain.com, più eventuali domini aggiuntivi che vuoi coprire (per il campo SAN).
  • I dati legali della tua organizzazione (paese, stato, località, nome dell’organizzazione) per il Distinguished Name della CSR.

Passo 1: Crea il keystore e la chiave privata

Se hai già generato la tua CSR, passa direttamente a invia la CSR e poi a installa il tuo certificato SSL su Tomcat.

Apri un terminale sul server e crea un nuovo keystore in formato PKCS12. PKCS12 è lo standard moderno e portatile ed è il formato di keystore predefinito in Java a partire da JDK 9; il vecchio formato JKS è deprecato. Esegui:

keytool -genkeypair 
  -alias tomcat 
  -keyalg RSA -keysize 2048 
  -storetype PKCS12 
  -keystore yourdomain.p12 
  -validity 825

Cosa significano i parametri:

  • -alias tomcat: il nome della voce all’interno del keystore. Scegli un’etichetta che riconoscerai (spesso tomcat o il tuo dominio). Annotala. Devi riutilizzare questo esatto alias quando generi la CSR e di nuovo quando importi il certificato firmato.
  • -keyalg RSA -keysize 2048: una chiave RSA a 2048 bit è il minimo pubblico attuale. Per nuovi keystore, 3072 bit è un aggiornamento ragionevole per chiavi con durata più lunga. La maggior parte delle CA pubbliche accetta anche ECDSA (-keyalg EC -groupname secp256r1) se preferisci una chiave più piccola e veloce.
  • -storetype PKCS12: forza l’uso del moderno keystore PKCS12. L’estensione corrispondente è .p12 (o .pfx).
  • -keystore yourdomain.p12: il file keystore da creare. Sostituisci il nome con qualcosa che ricorderai, e conserva questo file in modo sicuro: contiene la tua chiave privata.
  • -validity 825: per quanto tempo è valido il certificato segnaposto autofirmato all’interno del keystore. Il certificato firmato dalla CA lo sostituisce in seguito, quindi il valore esatto non influisce sulla durata in produzione.

keytool chiede quindi una password del keystore. Scegli una password robusta e conservala nel tuo gestore di segreti: ti servirà per ogni comando keytool successivo e per il server.xml di Tomcat. Con i keystore PKCS12, la password della chiave è uguale alla password del keystore, quindi c’è solo una password da ricordare.

Passo 2: Inserisci i dettagli della tua organizzazione (DN)

keytool ora richiede il Distinguished Name (DN): i campi identificativi che entrano nella CSR. Rispondi a ogni richiesta con il valore esatto e legale per la tua organizzazione. La punteggiatura e la precisione contano: una CA rifiuterà eventuali discordanze rispetto ai registri pubblici dell’attività.

  • Nome e cognome (CN): questa è la formulazione di keytool, ma si tratta del campo Common Name. Inserisci l’esatto FQDN che stai proteggendo, ad esempio www.yourdomain.com, oppure un wildcard come *.yourdomain.com. Non inserire il nome di una persona.
  • Unità organizzativa (OU): questo campo non viene più emesso dalle CA pubbliche ed è meglio lasciarlo vuoto. Premi Invio per saltarlo.
  • Organizzazione (O): il nome legale completo della tua azienda, ad esempio Your Company LLC.
  • Città o località (L): il nome completo della città, ad esempio San Jose. Non abbreviare.
  • Stato o provincia (ST): il nome completo dello stato o della provincia, ad esempio California. Non usare un codice a due lettere.
  • Codice paese (C): il codice paese ISO a due lettere, ad esempio US, GB, DE.

Dopo l’ultima richiesta, keytool mostra un riepilogo simile a CN=www.yourdomain.com, OU=, O=Your Company LLC, L=San Jose, ST=California, C=US. Digita yes per confermare. Il file keystore ora esiste con una voce: il tuo alias, che contiene la chiave privata e un certificato segnaposto autofirmato.

Se preferisci un comando non interattivo, passa il DN in linea e salta le richieste:

keytool -genkeypair 
  -alias tomcat 
  -keyalg RSA -keysize 2048 
  -storetype PKCS12 
  -keystore yourdomain.p12 
  -dname "CN=www.yourdomain.com, O=Your Company LLC, L=San Jose, ST=California, C=US" 
  -validity 825

Passo 3: Genera la CSR con SAN

I browser e i client moderni validano i certificati rispetto all’estensione Subject Alternative Name (SAN), non solo rispetto al Common Name. Richiedi i SAN direttamente nella CSR in modo che la CA li includa nel certificato emesso. Usa lo stesso alias e keystore utilizzati nel Passo 1:

keytool -certreq 
  -alias tomcat 
  -keystore yourdomain.p12 
  -file yourdomain.csr 
  -ext san=dns:yourdomain.com,dns:www.yourdomain.com

Cosa significano i parametri:

  • -alias tomcat: deve corrispondere all’alias del Passo 1. È l’alias la cui chiave privata firma la richiesta.
  • -keystore yourdomain.p12: deve corrispondere al keystore del Passo 1.
  • -file yourdomain.csr: il nome del file di output per la CSR.
  • -ext san=dns:…: l’estensione Subject Alternative Name. Elenca ogni nome host che il certificato deve coprire, incluso sia il dominio nudo (yourdomain.com) sia il sottodominio www. Aggiungi altre voci separate da virgola, ad esempio dns:api.yourdomain.com.

keytool richiede la password del keystore e scrive la CSR in yourdomain.csr nella directory corrente.

Fondamentale: conserva il tuo alias e keystore

L’errore più comune con keytool su Tomcat è importare il certificato firmato sotto un nuovo alias. Facendo così, il certificato viene salvato come voce attendibile autonoma senza chiave privata collegata, e TLS non funzionerà. Importa sempre la risposta firmata nello stesso alias che contiene la chiave privata (l’alias del Passo 1).

Annota questi tre valori ora, prima di chiudere il terminale:

  • L’alias (in questa guida, tomcat).
  • Il percorso del file keystore (ad esempio yourdomain.p12).
  • La password del keystore.

Se non sei sicuro di quale alias contenga la tua chiave, elenca il contenuto del keystore e cerca la voce il cui tipo è PrivateKeyEntry:

keytool -list -v -keystore yourdomain.p12

Passo 4: Verifica la CSR prima di inviarla

Individua errori di digitazione nel DN o SAN mancanti prima che la CA li validi. Stampa la CSR con keytool:

keytool -printcertreq -file yourdomain.csr

Oppure, se OpenSSL è installato, puoi usarlo invece:

openssl req -noout -text -in yourdomain.csr

Conferma tre cose nell’output: il Subject mostra il tuo DN esatto, il Subject Alternative Name elenca ogni nome host di cui hai bisogno, e la dimensione della Public-Key corrisponde a quella richiesta (RSA a 2048 bit, o qualsiasi altra scelta fatta). Puoi anche incollare la CSR nel nostro CSR Decoder per lo stesso controllo direttamente nel browser.

Passo 5: Invia la CSR alla tua Autorità di Certificazione

Apri yourdomain.csr in un qualsiasi editor di testo. Il file è testo semplice, inizia con —–BEGIN CERTIFICATE REQUEST—– e termina con —–END CERTIFICATE REQUEST—–. Copia l’intero blocco, incluse le righe di intestazione e chiusura, e incollalo nel campo CSR durante il checkout con la tua CA. Su Windows, usa Ctrl + A e poi Ctrl + C per selezionare l’intero testo; su macOS, usa Cmd + A e poi Cmd + C.

Dopo che la CA ha validato la tua richiesta ed emesso il certificato, continua con come installare il tuo certificato SSL su Tomcat. Importerai il certificato firmato nuovamente nello stesso alias nello stesso keystore, e poi punterai il connettore HTTPS di Tomcat verso quel keystore.

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.