Un ghid pas cu pas pentru configurarea certificatului SSL/TLS pe serverul Tomcat.
Una dintre sarcinile esențiale pentru securizarea Tomcat este configurarea certificatului SSL, astfel încât aplicația web să fie accesibilă prin HTTPS.
Există multe modalități de a realiza acest lucru.
- Puteți rezilia SSL la un echilibrator de încărcare
- Implementați SSL la nivel CDN
- Utilizați servere web precum Apache, Nginx etc. în față și implementați SSL acolo
Cu toate acestea, dacă nu utilizați niciunul dintre cele de mai sus sau îl utilizați ca front-end sau trebuie să implementați SSL direct în Tomcat, atunci următoarele vă vor ajuta.
În acest articol, vom face ca mai jos.
- Generați CSR (cerere de semnare a certificatului)
- Importați certificatul într-un fișier de depozit de chei
- Activați SSL în Tomcat
- Configurați protocolul TLS
- Schimbați Tomcat pentru a asculta pe portul 443
- Testați Tomcat pentru vulnerabilitatea SSL
Să începem…
Cuprins
Pregătirea pentru certificatul SSL/TLS
Primul pas ar fi să generați un CSR și să îl semnați de către autoritate certificată. Vom folosi utilitarul keytool pentru a gestiona certificatele.
- Conectați-vă la serverul Tomcat
- Accesați calea de instalare Tomcat
- Creați un folder numit ssl
- Executați comanda pentru a crea un depozit de chei
keytool -genkey -alias domainname -keyalg RSA -keysize 2048 -keystore filename.jks
Există două variabile în comenzile de mai sus pe care poate doriți să le modificați.
Ex:
[[email protected] ssl]# keytool -genkey -alias bloggerflare -keyalg RSA -keysize 2048 -keystore bloggerflare.jks Enter keystore password: Re-enter new password: What is your first and last name? [Unknown]: bloggerflare.com What is the name of your organizational unit? [Unknown]: Blogging What is the name of your organization? [Unknown]: Geek Flare What is the name of your City or Locality? [Unknown]: What is the name of your State or Province? [Unknown]: What is the two-letter country code for this unit? [Unknown]: Is CN=bloggerflare.com, OU=Blogging, O=Geek Flare, L=Unknown, ST=Unknown, C=Unknown correct? [no]: yes Enter key password for <bloggerflare> (RETURN if same as keystore password): [[email protected] ssl]#
Fiți atenți la întrebarea numelui și prenumelui. Asta cred că este puțin înșelător. Nu este numele tău, ci numele domeniului pe care vrei să-l securizi.
Odată ce furnizați toate informațiile, acesta va crea un fișier de depozit de chei într-un director de lucru actual.
Următorul ar fi să generați un nou CSR cu depozitul de chei nou creat cu comanda de mai jos.
keytool -certreq -alias bloggerflare -keyalg RSA -file bloggerflare.csr -keystore bloggerflare.jks
Aceasta va crea un CSR pe care trebuie să îl trimiteți autorității de certificare pentru a-l semna. Dacă vă jucați, atunci puteți lua în considerare utilizarea unui furnizor de certificat GRATUIT, altfel alegeți unul premium.
Am semnat certificatul și voi trece la import în depozitul de chei cu comanda de mai jos.
- Certificatul rădăcină de import este dat de furnizor
keytool -importcert -alias root -file root -keystore bloggerflare.jks
- Import certificat intermediar
keytool -importcert -alias intermediate -file intermediate -keystore bloggerflare.jks
Notă: fără a importa rădăcină și intermediar, nu veți putea importa certificatul de domeniu în depozitul de chei. Dacă aveți mai multe intermediare, atunci trebuie să le importați pe toate.
- Import certificat de domeniu
keytool -importcert -file bloggerflare.cer -keystore bloggerflare.jks -alias bloggerflare
și, veți primi o confirmare că a fost instalat.
Răspunsul la certificat a fost instalat în depozitul de chei
Grozav, deci depozitul de chei pentru certificate este gata acum. Să trecem la pasul următor.
Dacă sunteți nou în SSL și doriți să aflați mai multe, înscrieți-vă la acest curs online – Operațiuni SSL/TLS.
Activați SSL în Tomcat
Presupunând că sunteți încă conectat la serverul Tomcat, accesați folderul conf
- Faceți o copie de rezervă a fișierului server.xml
- Accesați secțiunea
SSLEnabled="true" scheme="https" keystoreFile="ssl/bloggerflare.jks" keystorePass="chandan" clientAuth="false" sslProtocol="TLS"
- Nu uitați să schimbați numele și parola fișierului depozit de chei cu ale dvs
- Reporniți Tomcat și ar trebui să vedeți că Tomcat este accesibil prin HTTPS
Dulce!
Port HTTPS standard
De ce?
Ei bine, dacă te uiți la captura de ecran de mai sus, accesez Tomcat peste 8080 cu https, care nu este standard și mai multe motive.
- Nu doriți să le cereți utilizatorilor să folosească portul personalizat
- Browserul va da un avertisment deoarece certificatul este emis pe numele de domeniu fără portul
Deci ideea este să faceți Tomcat să asculte pe portul 443, astfel încât să fie accesibil doar peste https:// fără numărul portului.
Pentru a face acest lucru, editați server.xml cu editorul preferat
- Accesați
- Schimbați portul de la 8080 la 443
- Ar trebui să arate așa
<Connector port="443" protocol="HTTP/1.1" connectionTimeout="20000" SSLEnabled="true" scheme="https" keystoreFile="ssl/bloggerflare.jks" keystorePass="chandan" clientAuth="false" sslProtocol="TLS" redirectPort="8443" />
- Reporniți Tomcat și accesați aplicația cu https fără niciun număr de port
Impresionant, este un succes!
Test de vulnerabilitate SSL/TLS
În cele din urmă, vom efectua un test pentru a ne asigura că nu este vulnerabil la amenințările online.
Există multe instrumente online despre care am discutat aici și aici voi folosi SSL Labs.
- Mergi la SSL Labs și introduceți adresa URL pentru a începe testul
Și este VERDE – O evaluare.
Cu toate acestea, este întotdeauna o idee bună să derulați în jos raportul și să vedeți dacă găsiți vreo vulnerabilitate și să o remediați.
Deci asta a fost tot pentru azi.
Sper că acest lucru vă ajută să cunoașteți procedura de securizare a Tomcat cu certificat SSL/TLS. Dacă sunteți interesat să aflați mai multe, vă recomand acest lucru curs.