În acest tutorial, vei învăța cum să instalezi un certificat SSL pe Apache Tomcat folosind utilitarul Java keytool, apoi cum să configurezi conectorul HTTPS în server.xml. Dacă nu ai generat încă CSR-ul, prima secțiune îți arată cum să o faci.
Am înregistrat de asemenea un videoclip care te ghidează prin întregul proces. Poți urmări videoclipul, poți citi instrucțiunile sau poți face ambele. Poți viziona videoclipul mai jos.
Generează un cod CSR pentru Tomcat
CSR înseamnă Certificate Signing Request, un bloc de text care conține detalii actuale despre domeniul și organizația ta. Fiecare cumpărător al unui certificat SSL comercial trebuie să trimită un CSR către Autoritatea de Certificare (furnizorul SSL) pentru a trece validarea și a primi certificatul. Dacă CSR-ul conține detalii incorecte, CA nu îl va semna.
Pe Tomcat, CSR-ul este creat cu keytool dintr-un keystore Java, iar acel keystore conține și cheia privată pe care o vei refolosi în timpul instalării. Ai două opțiuni:
- Folosește generatorul nostru de CSR pentru a crea CSR-ul automat.
- Urmează tutorialul nostru pas cu pas despre cum să generezi un CSR pe Tomcat.
Important: ține evidența fișierului keystore și a aliasului pe care le-ai folosit la generarea CSR-ului. Vei importa certificatul semnat înapoi în exact acel alias mai târziu, deoarece acolo se află cheia privată corespunzătoare.
După ce Autoritatea de Certificare validează cererea și îți trimite fișierele SSL, continuă cu instalarea de mai jos.
Instalează un certificat SSL în Tomcat
O instalare pe Tomcat are două etape: mai întâi imporți lanțul de certificate și certificatul semnat în keystore-ul care conține deja cheia ta privată, apoi configurezi conectorul HTTPS în server.xml pentru a folosi acel keystore.
Pasul 1: Pregătește fișierele certificatului SSL
Autoritatea ta de Certificare trimite fișierele prin e-mail la adresa pe care ai furnizat-o, de obicei sub formă de arhivă ZIP. Extrage-o. În funcție de CA, fișierele sosesc într-unul din cele două formate:
- PKCS#7: un singur fișier .p7b (sau .cer) care conține deja certificatul tău împreună cu certificatele root și intermediare.
- PEM: fișiere separate, de obicei un fișier .crt pentru certificatul serverului tău plus fișiere individuale root.crt și intermediate.crt.
Încarcă fișierele extrase pe server, în același director cu keystore-ul din care ai generat CSR-ul (denumit mai jos example.jks). Identifică formatul tău și urmează instrucțiunile corespunzătoare.
Ai generat CSR-ul în altă parte, așa că cheia ta privată este un fișier separat și nu o intrare în example.jks? Sari peste keytool: convertește PEM în PKCS#12 pentru a combina certificatul, lanțul și cheia într-un singur fișier .p12, apoi referă-te la acel fișier la Pasul 3 cu certificateKeystoreType=”PKCS12″.
Pasul 2: Importă certificatul în keystore-ul tău
Format PKCS#7. Deoarece un fișier .p7b conține deja lanțul complet, o singură comandă importă totul deodată, în aliasul existent al cheii tale private:
keytool -import -trustcacerts -alias ssldragon -keystore example.jks -file example.p7b
Înlocuiește ssldragon cu propriul tău alias și example cu numele fișierelor tale. Aliasul trebuie să fie cel care deține deja cheia ta privată (aliasul din pasul CSR). Când vezi mesajul Certificate reply was installed in keystore, importul a reușit. Verifică conținutul keystore-ului cu:
keytool -list -v -keystore example.jks
Caută o intrare al cărei tip este PrivateKeyEntry cu o lungime a lanțului de certificate mai mare de 1. Aceasta confirmă că certificatul semnat este acum atașat cheii tale private.
Format PEM. Importă certificatele separat, în ordinea lanțului: mai întâi root-ul, apoi orice certificate intermediare, iar la final certificatul domeniului tău. Importarea lanțului mai întâi permite keytool să construiască o cale de încredere completă înainte de a atașa răspunsul cheii tale. Importă certificatul root:
keytool -import -trustcacerts -alias root -keystore example.jks -file root.crt
Apoi importă certificatul intermediar:
keytool -import -trustcacerts -alias intermediate -keystore example.jks -file intermediate.crt
Dacă CA-ul tău furnizează mai multe certificate intermediare, importă fiecare sub propriul alias de încredere, urmând ordinea în care se semnează reciproc (de la root în jos, spre certificatul domeniului tău). De exemplu, un certificat Sectigo PositiveSSL vine cu mai mult de un intermediar, așa că importă-le în ordine înainte de certificatul domeniului.
În final, importă certificatul tău principal (cel emis pentru domeniul tău) în aliasul existent al cheii private, același alias pe care l-ai folosit la generarea CSR-ului:
keytool -import -trustcacerts -alias ssldragon -keystore example.jks -file example.crt
Aici, ssldragon trebuie să fie aliasul tău existent al cheii private. Deoarece acel alias are deja o cheie, keytool tratează acest import ca pe un certificate reply și leagă certificatul semnat de cheie. Acesta este pasul care face ca HTTPS să funcționeze.
Capcană critică: nu importa certificatul semnat sub un alias complet nou. Dacă aliasul nu are o cheie privată existentă, keytool stochează certificatul ca o intrare de încredere independentă, fără cheie atașată, iar TLS va eșua. Dacă nu ești sigur care alias deține cheia ta, rulează keytool -list -v -keystore example.jks și folosește aliasul al cărui tip este PrivateKeyEntry.
Pasul 3: Configurează conectorul HTTPS în server.xml
Cu certificatul în keystore-ul tău, direcționează conectorul HTTPS al Tomcat spre el. Conectorul este definit în server.xml, situat în folderul conf al instalării tale Tomcat (de exemplu $CATALINA_HOME/conf/server.xml). Deschide fișierul într-un editor de text.
În versiunile actuale de Tomcat (9, 10 și 11), forma recomandată include un element SSLHostConfig imbricat, care la rândul lui conține un element Certificate ce face referire la keystore-ul tău. Adaugă sau actualizează conectorul securizat astfel:
<Connector
port="443"
protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150"
SSLEnabled="true"
scheme="https"
secure="true">
<SSLHostConfig>
<Certificate
certificateKeystoreFile="/your_path/example.jks"
certificateKeystorePassword="your_keystore_password"
certificateKeystoreType="JKS"
certificateKeyAlias="ssldragon"
type="RSA" />
</SSLHostConfig>
</Connector>
- certificateKeystoreFile: calea completă către fișierul tău keystore.
- certificateKeystorePassword: parola keystore-ului.
- certificateKeystoreType: JKS pentru un keystore .jks, sau PKCS12 pentru un keystore .p12 / .pfx.
- certificateKeyAlias: aliasul care deține cheia ta privată și certificatul semnat (aici, ssldragon). Aceasta îi spune Tomcat ce intrare să servească atunci când keystore-ul conține mai mult de una.
Notă: portul 443 este portul HTTPS standard folosit mai sus; exemplele proprii Tomcat folosesc implicit 8443, așa că folosește-l pe cel pe care mediul tău îl așteaptă. Dacă aceasta este prima ta configurare HTTPS, conectorul securizat poate fi comentat în server.xml. Elimină marcajele de comentariu din jur pentru ca acesta să fie activ și asigură-te că niciun alt conector nu este deja atribuit aceluiași port.
Forma veche (Tomcat mai vechi). Ghidurile mai vechi plasează detaliile keystore-ului direct pe conector, ca atribute keystoreFile și keystorePass. Acest stil este înlocuit de elementele SSLHostConfig și Certificate prezentate mai sus, care reprezintă forma de utilizat pe versiunile Tomcat suportate.
Pasul 4: Salvează server.xml și repornește Tomcat
Salvează server.xml, apoi repornește Tomcat pentru ca acesta să reîncarce configurația. Pe Linux, folosește scripturile incluse:
$CATALINA_HOME/bin/shutdown.sh
$CATALINA_HOME/bin/startup.sh
Dacă Tomcat rulează ca serviciu, repornește-l în schimb prin managerul de servicii (de exemplu systemctl restart tomcat pe Linux, sau panoul Services pe Windows). Felicitări, certificatul tău SSL este acum instalat pe serverul Tomcat.
Testează instalarea SSL Tomcat
După instalarea certificatului, mici erori pot trece neobservate și pot afecta modul în care browserele tratează site-ul tău. Fă un obicei din a verifica instalarea. Rulează SSL Checker pentru o scanare instantanee care dezvăluie probleme precum un certificat intermediar lipsă sau un lanț neîncredere.
Întrebări frecvente
Cauza obișnuită este importarea certificatului semnat sub un alias nou în loc de aliasul care deține deja cheia ta privată. keytool îl stochează apoi ca intrare de certificat de încredere fără cheie, astfel încât Tomcat nu poate finaliza o strângere de mână TLS. Reimportă răspunsul semnat în aliasul existent al cheii private (cel din CSR-ul tău). Confirmă că a funcționat rulând keytool -list -v -keystore example.jks și verificând că aliasul apare ca PrivateKeyEntry cu un lanț mai lung de un certificat.
Importă mai întâi lanțul. Adaugă root-ul și orice certificate intermediare ca intrări de încredere, în ordine, apoi importă certificatul domeniului tău în aliasul cheii private la final. Aceasta permite keytool să construiască o cale de încredere completă înainte de a atașa răspunsul cheii tale. Cu un fișier PKCS#7 (.p7b) lanțul este deja inclus, astfel încât un singur import se ocupă de tot.
Conectorul HTTPS este definit în server.xml, în directorul conf al instalării tale Tomcat (de exemplu $CATALINA_HOME/conf/server.xml). În versiunile actuale de Tomcat, keystore-ul este referit printr-un element SSLHostConfig și Certificate imbricat, în loc de a fi direct pe conector.
Da. Tomcat le suportă pe ambele. Setează certificateKeystoreType la PKCS12 pentru un keystore .p12 sau .pfx, sau JKS pentru un keystore .jks, și îndreaptă certificateKeystoreFile către fișierul corespunzător. PKCS12 este formatul standard, portabil de keystore, deci este o alegere bună implicită pentru keystore-urile noi.
Configurația exemplu a Tomcat folosește portul 8443 pentru conectorul securizat. Pentru a servi HTTPS pe portul standard pe care browserele îl folosesc implicit, setează port-ul conectorului la 443 și asigură-te că niciun alt conector sau serviciu nu îl folosește deja.
Rulează scripturile incluse $CATALINA_HOME/bin/shutdown.sh urmat de $CATALINA_HOME/bin/startup.sh, sau repornește serviciul Tomcat prin managerul de servicii (de exemplu systemctl restart tomcat pe Linux, sau panoul Services pe Windows). O repornire este necesară pentru ca modificările din server.xml să aibă efect.
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


