Uputstvo korak po korak za konfigurisanje SSL/TLS sertifikata na Tomcat serveru.
Jedan od ključnih zadataka u obezbeđivanju Tomcat servera jeste postavljanje SSL sertifikata, čime se omogućava pristup web aplikaciji putem HTTPS protokola.
Postoji nekoliko načina da se ovo realizuje.
- Možete vršiti SSL terminaciju na load balanceru
- Implementirati SSL na nivou CDN-a
- Koristiti web servere poput Apache, Nginx, itd., kao posrednike i tamo implementirati SSL
Međutim, ako ne koristite nijednu od navedenih opcija, ili ako ovo koristite kao front-end, ili morate direktno primeniti SSL u Tomcatu, sledeće uputstvo će vam biti od pomoći.
U ovom članku ćemo proći kroz sledeće korake:
- Generisanje CSR-a (zahtev za potpisivanje sertifikata)
- Uvoz sertifikata u datoteku keystorea
- Omogućavanje SSL-a u Tomcatu
- Konfigurisanje TLS protokola
- Podešavanje Tomcata da sluša na portu 443
- Testiranje Tomcata na SSL ranjivosti
Krenimo…
Priprema za SSL/TLS sertifikat
Prvi korak je generisanje CSR-a i njegovo potpisivanje od strane ovlašćenog tela. Koristićemo keytool uslužni program za upravljanje sertifikatima.
- Prijavite se na Tomcat server
- Dođite do instalacionog direktorijuma Tomcata
- Napravite folder pod nazivom ssl
- Izvršite komandu za kreiranje keystorea
keytool -genkey -alias domainname -keyalg RSA -keysize 2048 -keystore filename.jks
U gornjim komandama postoje dve promenljive koje možete promeniti:
Na primer:
[[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]#
Obratite pažnju na pitanje o imenu i prezimenu. To je pomalo varljivo. Ne unosite vaše lično ime, već ime domena koji želite da obezbedite.
Nakon što unesete sve potrebne informacije, kreiraće se datoteka keystorea u trenutnom radnom direktorijumu.
Sledeći korak je generisanje novog CSR-a pomoću novokreiranog keystorea, koristeći sledeću komandu:
keytool -certreq -alias bloggerflare -keyalg RSA -file bloggerflare.csr -keystore bloggerflare.jks
Ovo će generisati CSR koji treba da pošaljete certifikacionom telu na potpisivanje. Ako testirate, razmislite o korišćenju BESPLATNOG provajdera sertifikata, inače odaberite premium opciju.
Nakon što sam dobio potpisani sertifikat, nastaviću sa uvozom u keystore koristeći sledeće komande:
- Uvoz root sertifikata koji vam je dao provajder
keytool -importcert -alias root -file root -keystore bloggerflare.jks
- Uvoz intermediate (srednjeg) sertifikata
keytool -importcert -alias intermediate -file intermediate -keystore bloggerflare.jks
Napomena: Bez uvoza root i intermediate sertifikata, nećete moći da uvezete sertifikat domena u keystore. Ako imate više od jednog intermediate sertifikata, morate ih sve uvesti.
- Uvoz sertifikata domena
keytool -importcert -file bloggerflare.cer -keystore bloggerflare.jks -alias bloggerflare
Dobićete potvrdu da je sertifikat instaliran.
Odgovor sertifikata je instaliran u keystore.
Odlično, keystore sa sertifikatima je sada spreman. Pređimo na sledeći korak.
Ako ste novi u SSL-u i želite da saznate više, upišite se na ovaj online kurs – SSL/TLS operacije.
Omogućavanje SSL-a u Tomcatu
Pod pretpostavkom da ste još uvek prijavljeni na Tomcat server, idite u conf folder.
- Napravite rezervnu kopiju datoteke server.xml
- Pronađite sekciju
SSLEnabled="true" scheme="https" keystoreFile="ssl/bloggerflare.jks" keystorePass="chandan" clientAuth="false" sslProtocol="TLS"
- Ne zaboravite da promenite ime datoteke i lozinku keystorea svojim podacima
- Restartujte Tomcat i trebalo bi da vidite da je Tomcat dostupan preko HTTPS-a
Odlično!
Standardni HTTPS port
Zašto?
Pa, ako pogledate gornji snimak ekrana, pristupam Tomcatu preko porta 8080 sa https, što nije standardno, a postoji i nekoliko drugih razloga:
- Ne želite da tražite od korisnika da koriste nestandardni port
- Pretraživač će prikazati upozorenje jer je sertifikat izdat za ime domena bez porta
Dakle, cilj je da Tomcat sluša na portu 443 kako bi mu se moglo pristupiti putem https:// bez navođenja broja porta.
Da biste to uradili, uredite server.xml datoteku pomoću svog omiljenog uređivača teksta:
- Pronađite
- Promenite port sa 8080 na 443
- Trebalo bi da izgleda ovako:
<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" />
- Restartujte Tomcat i pristupite svojoj aplikaciji pomoću https bez navođenja broja porta
Impresivno, uspeli ste!
SSL/TLS Test Ranjivosti
Na kraju, izvršićemo test kako bismo se uverili da nije ranjiv na pretnje na mreži.
Postoji mnogo online alata o kojima sam govorio ranije, a ovde ću koristiti SSL Labs.
- Idite na SSL Labs i unesite URL da biste započeli test
I ocena je ZELENA.
Međutim, uvek je dobra ideja da pogledate detalje izveštaja i proverite da li postoje neke ranjivosti koje treba ispraviti.
To bi bilo sve za danas.
Nadam se da će vam ovo pomoći da razumete postupak obezbeđivanja Tomcata pomoću SSL/TLS sertifikata. Ako ste zainteresovani da saznate više, toplo bih preporučio ovaj kurs.