Acest tutorial vă arată cum să generați un CSR (Certificate Signing Request) pentru GlassFish (acum Eclipse GlassFish) folosind utilitarul Java keytool.
GlassFish este neobișnuit într-un mod util: o instalare nouă vine deja cu un keystore (keystore.p12 pe Eclipse GlassFish 7.1 și versiuni mai noi, sau keystore.jks pe versiunile mai vechi) și o intrare de certificat implicită sub aliasul s1as. Puteți genera CSR-ul direct din această cheie existentă sau o puteți înlocui cu o cheie nouă sub același alias. Oricare ar fi opțiunea aleasă, același alias este reutilizat atunci când importați certificatul semnat, astfel încât cheia, CSR-ul și certificatul emis se află toate în același loc.
Ce vă va trebui
- O instalare funcțională GlassFish (sau Eclipse GlassFish). Keystore-ul implicit se află în directorul de configurare al domeniului, de exemplu glassfish/domains/domain1/config/keystore.p12 pe Eclipse GlassFish 7.1 și versiuni mai noi, sau keystore.jks pe versiunile mai vechi.
- O instalare Java, astfel încât comanda keytool să fie disponibilă. GlassFish vine cu un JDK, deci keytool este, în mod normal, deja disponibil în path. Confirmați cu
keytool -help. - Acces la shell sau terminal pe serverul GlassFish. Cheia privată trebuie să rămână pe acest server.
- Numele de domeniu complet calificat (FQDN) exact pe care doriți să-l securizați, de exemplu www.domeniuldvs.com, plus orice alte nume de gazdă suplimentare pentru câmpul SAN.
- Detaliile legale ale organizației dvs. (țară, stat, localitate, denumirea organizației) pentru Distinguished Name-ul CSR-ului.
- Parola master a GlassFish pentru domeniu. Valoarea implicită din fabrică este changeit; schimbați-o pe sistemele de producție cu
asadmin change-master-password.
Două moduri de a genera CSR-ul
Dacă ați generat deja CSR-ul, treceți direct la trimiterea CSR-ului și apoi la instalarea certificatului SSL pe GlassFish.
Există două fluxuri keytool comune pe GlassFish. Alegeți-l pe cel care se potrivește situației dvs.:
- Opțiunea A: Generați CSR-ul din cheia s1as existentă (recomandat). Un domeniu GlassFish nou are deja o cheie privată sub aliasul s1as în keystore-ul implicit (keystore.p12 pe 7.1+, keystore.jks pe versiunile mai vechi). Cea mai rapidă și mai puțin riscantă cale este să lăsați acea cheie neschimbată și doar să exportați un CSR din ea. Treceți la Opțiunea A.
- Opțiunea B: Înlocuiți cheia s1as implicită cu o cheie nouă, apoi generați CSR-ul. Folosiți această variantă dacă doriți o dimensiune de cheie și un DN cunoscute și actuale, sau dacă suspectați că cheia implicită a fost folosită sau expusă. Treceți la Opțiunea B.
Indiferent de opțiunea aleasă, aliasul trebuie să rămână s1as (sau, dacă îl schimbați, trebuie să actualizați și domain.xml pentru a se potrivi). Ascultătorul HTTPS al GlassFish caută certificatul după alias, deci un alias necorespunzător înseamnă că GlassFish nu poate găsi cheia, iar TLS nu va porni.
Opțiunea A: Generați CSR-ul din cheia s1as existentă
Pasul 1: Treceți în directorul de configurare al GlassFish
Deschideți un terminal și navigați la directorul care conține keystore-ul pentru domeniul dvs. Într-o instalare implicită, acesta este folderul config al domain1:
cd /opt/glassfish7/glassfish/domains/domain1/config
Ajustați calea pentru a se potrivi cu locul în care ați instalat GlassFish (versiunile mai vechi GlassFish 4 imbrică instalarea sub un folder de nivel superior glassfish4/; Eclipse GlassFish 6, 7 și 8 se instalează de obicei sub glassfish7/, glassfish8/ sau similar). Dacă ați creat propriul domeniu, înlocuiți domain1 cu numele acelui domeniu. Rulați ls *.p12 *.jks în acest director pentru a confirma numele fișierului keystore: pe Eclipse GlassFish 7.1 și versiuni mai noi veți vedea keystore.p12; pe versiunile mai vechi veți vedea keystore.jks. Înlocuiți acest nume de fișier oriunde comenzile de mai jos indică keystore.jks.
Pasul 2: Confirmați existența intrării s1as
Listați conținutul keystore-ului și verificați că s1as este prezent și este de tipul PrivateKeyEntry:
keytool -list -v -keystore keystore.jks -alias s1as
Introduceți parola keystore-ului (implicit din fabrică changeit; pe un server de producție ar trebui să se potrivească cu parola master a domeniului dvs.). Rezultatul ar trebui să includă linia Entry type: PrivateKeyEntry. Dacă în schimb primiți mesajul Alias <s1as> does not exist, treceți la Opțiunea B și creați o intrare nouă.
Pasul 3: Exportați CSR-ul cu SAN
Browserele moderne și clienții TLS validează certificatele în funcție de extensia Subject Alternative Name (SAN), nu doar de Common Name. Solicitați SAN-urile direct în CSR, astfel încât CA-ul să le includă în certificatul emis:
keytool -certreq
-alias s1as
-keystore keystore.jks
-file glassfish.csr
-ext san=dns:yourdomain.com,dns:www.yourdomain.com
Ce înseamnă opțiunile:
- -alias s1as: aliasul de certificat GlassFish existent. Cheia privată de sub acest alias semnează cererea.
- -keystore keystore.jks: fișierul keystore implicit al GlassFish. Eclipse GlassFish 7.1 și versiunile mai noi livrează un keystore PKCS12 numit keystore.p12; versiunile mai vechi folosesc un keystore JKS numit keystore.jks. Folosiți orice nume de fișier există efectiv în acest director. Comanda în sine este aceeași în ambele cazuri; keytool detectează formatul.
- -file glassfish.csr: numele fișierului de ieșire pentru CSR. Alegeți orice nume doriți.
- -ext san=dns:…: extensia Subject Alternative Name. Listați fiecare nume de gazdă pe care certificatul trebuie să-l acopere, inclusiv atât domeniul de bază (yourdomain.com), cât și subdomeniul www. Adăugați mai multe intrări separate prin virgulă, de exemplu dns:api.yourdomain.com.
keytool solicită parola keystore-ului și scrie CSR-ul în fișierul glassfish.csr din directorul curent. Subject-ul (Distinguished Name) al CSR-ului este preluat din ceea ce este stocat în intrarea s1as; pe o instalare GlassFish nouă, acesta este certificatul autosemnat generat automat, deci DN-ul nu se va potrivi cu compania dvs. Majoritatea CA-urilor verifică doar Common Name-ul și lista SAN și vă permit să suprascrieți restul DN-ului în formularul de comandă, dar dacă aveți nevoie de un CSR al cărui DN conține deja detaliile legale ale companiei dvs., folosiți Opțiunea B.
Opțiunea B: Înlocuiți cheia s1as implicită cu una nouă
Folosiți această opțiune atunci când doriți control total asupra dimensiunii cheii și a DN-ului, sau atunci când preferați să nu reutilizați cheia generată din fabrică. Fluxul este: ștergeți intrarea implicită s1as, creați o cheie nouă sub același alias, apoi exportați CSR-ul. Păstrarea aliasului ca s1as înseamnă că nu va trebui să modificați domain.xml ulterior.
Pasul 1: Faceți o copie de rezervă a keystore-ului
Înainte de a șterge orice, copiați keystore-ul curent, astfel încât să puteți reveni dacă este necesar. Din directorul config al domeniului:
cp keystore.jks keystore.jks.bak
Pasul 2: Ștergeți intrarea implicită s1as
keytool -delete -alias s1as -keystore keystore.jks
Introduceți parola keystore-ului când vi se solicită.
Pasul 3: Creați o cheie privată nouă sub același alias
Generați o cheie RSA nouă de 2048 de biți sub aliasul s1as și furnizați DN-ul direct în linia de comandă, astfel încât comanda să nu fie interactivă:
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
Ce înseamnă opțiunile:
- -alias s1as: reutilizează aliasul implicit al GlassFish, astfel încât domain.xml nu necesită modificări.
- -keyalg RSA -keysize 2048: o cheie RSA de 2048 de biți este minimul public actual. Pentru cheile noi pe care intenționați să le păstrați mai mulți ani, 3072 de biți reprezintă o îmbunătățire rezonabilă. Majoritatea CA-urilor publice acceptă, de asemenea, ECDSA (-keyalg EC -groupname secp256r1) pentru o cheie mai mică și mai rapidă.
- -keystore keystore.jks: keystore-ul implicit al GlassFish. Înlocuiți cu keystore.p12 pe Eclipse GlassFish 7.1 și versiuni mai noi. keytool păstrează formatul existent al keystore-ului (JKS pe instalările mai vechi, PKCS12 pe 7.1+); ambele sunt potrivite aici.
- -dname „CN=…”: câmpurile Distinguished Name scrise în CSR. Folosiți detaliile legale exacte ale companiei dvs.:
- CN: FQDN-ul exact pe care îl securizați, de exemplu www.domeniuldvs.com, sau un wildcard precum *.domeniuldvs.com. Nu introduceți numele unei persoane, în ciuda formulării solicitării din modul interactiv al keytool.
- O: denumirea legală completă a companiei dvs.
- L: numele complet al orașului (nu abreviați).
- ST: numele complet al statului sau provinciei (nu folosiți un cod de două litere).
- C: codul de țară ISO din două litere, de exemplu US, GB, DE.
- OU (Organizational Unit): acest câmp nu mai este emis de CA-urile publice. Excludeți-l din DN.
keytool solicită parola keystore-ului și parola cheii. Pe un domeniu GlassFish, parola keystore-ului, parola cheii și parola master a domeniului trebuie să coincidă, altfel GlassFish nu poate debloca cheia la pornire, iar HTTPS va eșua. Apăsați Enter la solicitarea parolei cheii pentru a reutiliza parola keystore-ului.
Pasul 4: Exportați CSR-ul cu SAN
Aceeași comandă ca la Opțiunea A, rulată pe noua dvs. cheie:
keytool -certreq
-alias s1as
-keystore keystore.jks
-file glassfish.csr
-ext san=dns:yourdomain.com,dns:www.yourdomain.com
Introduceți parola keystore-ului. keytool scrie CSR-ul în glassfish.csr în directorul curent.
Esențial: păstrați aliasul ca s1as
Cea mai comună greșeală keytool pe GlassFish este schimbarea aliasului la un moment dat pe parcurs, fie la generarea cheii, fie la importarea certificatului semnat. Apar două moduri de eșec:
- Alias greșit pe cheie. Ascultătorul HTTPS al GlassFish este configurat pentru s1as în domain.xml. Dacă generați o cheie sub un alias diferit, GlassFish nu o poate găsi, iar ascultătorul revine la certificatul autosemnat implicit (sau nu pornește). Dacă doriți cu adevărat un alias diferit, trebuie să actualizați fiecare referință s1as din domain.xml pentru a se potrivi.
- Alias greșit la import. Când CA-ul returnează certificatul semnat, trebuie să-l importați înapoi în același alias care conține cheia privată. Importarea sub un alias complet nou stochează certificatul ca o intrare de încredere independentă, fără nicio cheie privată atașată, iar TLS nu va funcționa.
Notați aceste trei valori înainte de a închide terminalul:
- Aliasul (implicit s1as; păstrați-l).
- Calea fișierului keystore, de exemplu glassfish/domains/domain1/config/keystore.p12 (sau keystore.jks pe versiunile mai vechi).
- Parola keystore-ului (care trebuie să fie identică cu parola master a domeniului).
Verificați CSR-ul înainte de a-l trimite
Depistați greșelile de scriere din DN sau SAN-urile lipsă înainte ca CA-ul să le valideze. Afișați CSR-ul cu keytool:
keytool -printcertreq -file glassfish.csr
Sau, dacă OpenSSL este instalat, folosiți-l în schimb:
openssl req -noout -text -in glassfish.csr
Confirmați trei lucruri în rezultat: câmpul Subject afișează DN-ul exact al dvs., Subject Alternative Name listează fiecare nume de gazdă de care aveți nevoie, iar dimensiunea Public-Key corespunde cu cea solicitată (RSA de 2048 de biți, sau orice ați ales). Puteți, de asemenea, să lipiți CSR-ul în decodorul nostru de CSR pentru aceeași verificare într-un browser.
Trimiteți CSR-ul către autoritatea dvs. de certificare
Deschideți glassfish.csr în orice editor de text. Fișierul este text simplu, începând cu ––BEGIN CERTIFICATE REQUEST–– și terminându-se cu ––END CERTIFICATE REQUEST––. Copiați întregul bloc, inclusiv liniile de antet și de subsol, și lipiți-l în câmpul CSR în timpul procesului de comandă la CA-ul dvs. Pe Windows, folosiți Ctrl + A apoi Ctrl + C pentru a prelua întregul text; pe macOS, folosiți Cmd + A apoi Cmd + C.
După ce CA-ul validează cererea dvs. și emite certificatul, continuați cu modul de instalare a certificatului SSL pe GlassFish. Veți importa lanțul CA ca fiind de încredere, apoi veți importa certificatul semnat înapoi în aliasul s1as din același fișier keystore (keystore.p12 pe 7.1+, keystore.jks pe versiunile mai vechi) și, în final, veți direcționa ascultătorul HTTPS către acel alias.
Economisește 10% la certificatele SSL în momentul plasării comenzii!
Eliberare rapidă, criptare puternică, încredere în browser de 99,99%, suport dedicat și garanție de returnare a banilor în 25 de zile. Codul cuponului: SAVE10


