Questo tutorial mostra come generare una CSR (Certificate Signing Request) per GlassFish (ora Eclipse GlassFish) utilizzando l’utilità Java keytool.
GlassFish è insolito in un modo utile: un’installazione appena effettuata include già un keystore (keystore.p12 su Eclipse GlassFish 7.1 e versioni successive, oppure keystore.jks nelle versioni precedenti) e una voce di certificato predefinita con l’alias s1as. Puoi generare la CSR direttamente da quella chiave esistente, oppure sostituirla con una chiave nuova con lo stesso alias. In entrambi i casi, lo stesso alias viene riutilizzato quando importi il certificato firmato, in modo che la chiave, la CSR e il certificato emesso risiedano tutti nello stesso posto.
Cosa ti servirà
- Un’installazione funzionante di GlassFish (o Eclipse GlassFish). Il keystore predefinito si trova nella directory config del dominio, ad esempio glassfish/domains/domain1/config/keystore.p12 su Eclipse GlassFish 7.1 e versioni successive, oppure keystore.jks nelle versioni precedenti.
- Un’installazione Java in modo che il comando keytool sia disponibile. GlassFish viene fornito con un JDK, quindi keytool è normalmente già nel path. Verificalo con
keytool -help. - Accesso shell o terminale sul server GlassFish. La chiave privata deve rimanere su questo server.
- Il nome di dominio completo (FQDN) esatto che vuoi proteggere, ad esempio www.tuodominio.com, più eventuali hostname aggiuntivi per il campo SAN.
- I dati legali della tua organizzazione (paese, stato, località, nome dell’organizzazione) per il Distinguished Name della CSR.
- La master password di GlassFish per il dominio. Il valore predefinito di fabbrica è changeit; modificalo sui sistemi di produzione con
asadmin change-master-password.
Due modi per generare la CSR
Se hai già generato la tua CSR, passa direttamente a invia la CSR e poi a come installare il tuo certificato SSL su GlassFish.
Ci sono due flussi keytool comuni su GlassFish. Scegli quello adatto alla tua situazione:
- Opzione A: Generare la CSR dalla chiave s1as esistente (consigliata). Un nuovo dominio GlassFish ha già una chiave privata con l’alias s1as all’interno del keystore predefinito (keystore.p12 su 7.1+, keystore.jks sulle versioni precedenti). Il percorso più rapido e meno rischioso è lasciare quella chiave così com’è e semplicemente esportare una CSR da essa. Passa a Opzione A.
- Opzione B: Sostituire la chiave s1as predefinita con una chiave nuova, poi generare la CSR. Usa questa opzione se desideri una dimensione della chiave e un DN noti e attuali, oppure se sospetti che la chiave predefinita sia stata utilizzata o esposta. Passa a Opzione B.
Qualunque opzione scegli, l’alias deve rimanere s1as (oppure, se lo modifichi, devi anche aggiornare domain.xml di conseguenza). Il listener HTTPS di GlassFish cerca il certificato in base all’alias, quindi un alias non corrispondente significa che GlassFish non può trovare la chiave e TLS non si avvierà.
Opzione A: Generare la CSR dalla chiave s1as esistente
Passaggio 1: Passa alla directory di configurazione di GlassFish
Apri un terminale e spostati nella directory che contiene il keystore del tuo dominio. In un’installazione predefinita, si tratta della cartella config di domain1:
cd /opt/glassfish7/glassfish/domains/domain1/config
Adatta il percorso a dove hai installato GlassFish (le vecchie build di GlassFish 4 annidano l’installazione sotto una cartella principale glassfish4/; Eclipse GlassFish 6, 7 e 8 in genere si installano sotto glassfish7/, glassfish8/ o simili). Se hai creato un tuo dominio personalizzato, sostituisci domain1 con il nome di quel dominio. Esegui ls *.p12 *.jks in questa directory per confermare il nome del file del keystore: su Eclipse GlassFish 7.1 e versioni successive vedrai keystore.p12; nelle versioni precedenti vedrai keystore.jks. Sostituisci quel nome di file ovunque i comandi seguenti mostrino keystore.jks.
Passaggio 2: Confermare l’esistenza della voce s1as
Elenca il contenuto del keystore e verifica che s1as sia presente e sia una PrivateKeyEntry:
keytool -list -v -keystore keystore.jks -alias s1as
Inserisci la password del keystore (predefinita di fabbrica changeit; su un server di produzione dovrebbe corrispondere alla master password del tuo dominio). L’output dovrebbe includere la riga Entry type: PrivateKeyEntry. Se invece ottieni il messaggio Alias <s1as> does not exist, passa all’Opzione B e crea una nuova voce.
Passaggio 3: Esportare la CSR con SAN
I browser moderni e i client TLS convalidano i certificati in base all’estensione Subject Alternative Name (SAN), non solo in base al Common Name. Richiedi i SAN direttamente nella CSR in modo che la CA li includa nel certificato emesso:
keytool -certreq
-alias s1as
-keystore keystore.jks
-file glassfish.csr
-ext san=dns:yourdomain.com,dns:www.yourdomain.com
Ecco cosa significano i flag:
- -alias s1as: l’alias esistente del certificato GlassFish. La chiave privata sotto questo alias firma la richiesta.
- -keystore keystore.jks: il file keystore predefinito di GlassFish. Eclipse GlassFish 7.1 e versioni successive includono un keystore PKCS12 chiamato keystore.p12; le versioni precedenti usano un keystore JKS chiamato keystore.jks. Usa il nome file effettivamente presente in questa directory. Il comando in sé è identico in entrambi i casi; keytool rileva il formato automaticamente.
- -file glassfish.csr: il nome del file di output per la CSR. Scegli il nome che preferisci.
- -ext san=dns:…: l’estensione Subject Alternative Name. Elenca ogni hostname che il certificato deve coprire, incluso sia il dominio nudo (yourdomain.com) che il sottodominio www. Aggiungi altre voci separate da virgole, ad esempio dns:api.yourdomain.com.
keytool richiede la password del keystore e scrive la CSR nel file glassfish.csr nella directory corrente. Il Subject (Distinguished Name) della CSR viene ricavato da quanto memorizzato nella voce s1as; su un’installazione GlassFish appena creata si tratta del certificato autofirmato generato automaticamente, quindi il DN non corrisponderà alla tua azienda. La maggior parte delle CA verifica solo il Common Name e l’elenco SAN e ti permette di sovrascrivere il resto del DN nel modulo d’ordine, ma se hai bisogno di una CSR il cui DN riporti già i dettagli legali della tua azienda, usa l’Opzione B.
Opzione B: Sostituire la chiave s1as predefinita con una nuova
Usa questa opzione quando vuoi il pieno controllo sulla dimensione della chiave e sul DN, oppure quando preferisci non riutilizzare la chiave generata di fabbrica. Il flusso è: eliminare la voce s1as predefinita, creare una nuova chiave con lo stesso alias, poi esportare la CSR. Mantenere l’alias come s1as significa che non dovrai toccare domain.xml in seguito.
Passaggio 1: Eseguire il backup del keystore
Prima di eliminare qualsiasi cosa, copia il keystore attuale in modo da poter ripristinare la situazione precedente se necessario. Dalla directory config del dominio:
cp keystore.jks keystore.jks.bak
Passaggio 2: Eliminare la voce s1as predefinita
keytool -delete -alias s1as -keystore keystore.jks
Inserisci la password del keystore quando richiesto.
Passaggio 3: Creare una nuova chiave privata con lo stesso alias
Genera una nuova chiave RSA a 2048 bit con l’alias s1as e fornisci il DN in linea in modo che il comando non sia interattivo:
keytool -genkeypair
-alias s1as
-keyalg RSA -keysize 2048
-keystore keystore.jks
-dname "CN=www.yourdomain.com, O=Your Company LLC, L=San Jose, ST=California, C=US"
-validity 825
Ecco cosa significano i flag:
- -alias s1as: riutilizza l’alias predefinito di GlassFish in modo che domain.xml non richieda modifiche.
- -keyalg RSA -keysize 2048: una chiave RSA a 2048 bit è l’attuale minimo pubblico. Per nuove chiavi che intendi mantenere per diversi anni, 3072 bit rappresenta un ragionevole passo in avanti. La maggior parte delle CA pubbliche accetta anche ECDSA (-keyalg EC -groupname secp256r1) per una chiave più piccola e più veloce.
- -keystore keystore.jks: il keystore predefinito di GlassFish. Sostituisci con keystore.p12 su Eclipse GlassFish 7.1 e versioni successive. keytool mantiene il formato di keystore esistente (JKS nelle installazioni precedenti, PKCS12 su 7.1+); entrambi sono adatti in questo caso.
- -dname “CN=…”: i campi Distinguished Name scritti nella CSR. Usa i tuoi dati aziendali esatti e legali:
- CN: l’FQDN esatto che stai proteggendo, ad esempio www.tuodominio.com, oppure un wildcard come *.tuodominio.com. Non inserire il nome di una persona, nonostante il testo del prompt di keytool nella modalità interattiva.
- O: il nome legale completo della tua azienda.
- L: il nome completo della città (non abbreviare).
- ST: il nome completo dello stato o della provincia (non usare un codice a due lettere).
- C: il codice paese ISO a due lettere, ad esempio US, GB, DE.
- OU (Organizational Unit): questo campo non viene più emesso dalle CA pubbliche. Ometti questo dato dal DN.
keytool richiede la password del keystore e la password della chiave. Su un dominio GlassFish, la password del keystore, la password della chiave e la master password del dominio devono tutte coincidere, altrimenti GlassFish non può sbloccare la chiave all’avvio e HTTPS non funzionerà. Premi Invio al prompt della password della chiave per riutilizzare la password del keystore.
Passaggio 4: Esportare la CSR con SAN
Stesso comando dell’Opzione A, eseguito sulla tua nuova chiave:
keytool -certreq
-alias s1as
-keystore keystore.jks
-file glassfish.csr
-ext san=dns:yourdomain.com,dns:www.yourdomain.com
Inserisci la password del keystore. keytool scrive la CSR nel file glassfish.csr nella directory corrente.
Fondamentale: mantieni l’alias s1as
L’errore keytool più comune su GlassFish è cambiare l’alias in qualche punto del processo, sia quando si genera la chiave sia quando si importa il certificato firmato. Si presentano due modalità di errore:
- Alias errato sulla chiave. Il listener HTTPS di GlassFish è collegato a s1as in domain.xml. Se generi una chiave con un alias diverso, GlassFish non riesce a trovarla e il listener torna al certificato autofirmato predefinito (oppure non si avvia). Se vuoi davvero un alias diverso, devi aggiornare ogni riferimento a s1as in domain.xml di conseguenza.
- Alias errato nell’importazione. Quando la CA restituisce il tuo certificato firmato, devi importarlo di nuovo nello stesso alias che contiene la chiave privata. Importarlo con un alias completamente nuovo memorizza il certificato come voce attendibile indipendente senza chiave privata associata, e TLS non funzionerà.
Prendi nota di questi tre valori prima di chiudere il terminale:
- L’alias (predefinito s1as; mantienilo).
- Il percorso del file keystore, ad esempio glassfish/domains/domain1/config/keystore.p12 (oppure keystore.jks nelle versioni precedenti).
- La password del keystore (che deve corrispondere alla master password del dominio).
Verifica la CSR prima di inviarla
Individua errori di digitazione nel DN o SAN mancanti prima che la CA li convalidi. Stampa la CSR con keytool:
keytool -printcertreq -file glassfish.csr
Oppure, se OpenSSL è installato, usalo invece:
openssl req -noout -text -in glassfish.csr
Conferma tre cose nell’output: il Subject mostra il tuo DN esatto, il Subject Alternative Name elenca ogni hostname di cui hai bisogno, e la dimensione della Public-Key corrisponde a quanto richiesto (RSA a 2048 bit, o qualsiasi valore scelto). Puoi anche incollare la CSR nel nostro CSR Decoder per lo stesso controllo direttamente nel browser.
Invia la CSR alla tua Certificate Authority
Apri glassfish.csr con un qualsiasi editor di testo. Il file è in testo semplice, inizia con —–BEGIN CERTIFICATE REQUEST—– e termina con —–END CERTIFICATE REQUEST—–. Copia l’intero blocco, incluse quelle righe di intestazione e conclusione, e incollalo nel campo CSR durante la procedura di acquisto presso 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 convalidato la tua richiesta e ha emesso il certificato, prosegui con come installare il tuo certificato SSL su GlassFish. Importerai la catena della CA come attendibile, poi importerai nuovamente il certificato firmato nell’alias s1as all’interno dello stesso file keystore (keystore.p12 su 7.1+, keystore.jks nelle versioni precedenti), e infine indirizzerai il listener HTTPS a quell’alias.
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


