Hvordan implementere SSL i Apache Tomcat?
En trinn-for-trinn-veiledning for å sette opp SSL/TLS-sertifikat i Tomcat-serveren.
En av de essensielle oppgavene for å sikre Tomcat er å konfigurere SSL-sertifikatet, slik at nettapplikasjonen er tilgjengelig over HTTPS.
Det er mange måter å oppnå dette på.
- Du kan avslutte SSL ved en lastbalanser
- Implementer SSL på CDN-nivå
- Bruk webservere som Apache, Nginx osv. foran og implementer SSL der
Men hvis du ikke bruker noen av de ovennevnte eller bruker dette som en grensesnitt eller trenger å distribuere SSL direkte i Tomcat, vil følgende hjelpe deg.
I denne artikkelen vil vi gjøre som nedenfor.
- Generer CSR (forespørsel om sertifikatsignering)
- Importer sertifikat i en nøkkellagerfil
- Aktiver SSL i Tomcat
- Konfigurer TLS-protokollen
- Endre Tomcat for å lytte på 443-port
- Test Tomcat for SSL-sårbarhet
La oss begynne…
Innholdsfortegnelse
Forbereder for SSL/TLS-sertifikat
Det første trinnet ville være å generere en CSR og få den signert av sertifiseringsinstans. Vi vil bruke nøkkelverktøy for å administrere sertifikatene.
- Logg på Tomcat-serveren
- Gå til tomcat-installasjonsbanen
- Opprett en mappe kalt ssl
- Kjør kommando for å opprette et nøkkellager
keytool -genkey -alias domainname -keyalg RSA -keysize 2048 -keystore filename.jks
Det er to variable i kommandoene ovenfor som du kanskje vil endre.
Eks:
[[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]#
Vær oppmerksom på spørsmålet om for- og etternavn. Dette er litt misvisende synes jeg. Det er ikke navnet ditt, men domenenavnet du vil sikre.
Når du har oppgitt all informasjonen, vil den opprette en nøkkellagerfil i en eksisterende arbeidskatalog.
Neste ville være å generere en ny CSR med det nyopprettede nøkkellageret med kommandoen nedenfor.
keytool -certreq -alias bloggerflare -keyalg RSA -file bloggerflare.csr -keystore bloggerflare.jks
Dette vil opprette en CSR som du må sende til sertifiseringsmyndigheten for å få den signert. Hvis du spiller rundt, kan du vurdere å bruke en GRATIS sertifikatleverandør, ellers gå for en premium.
Jeg fikk sertifikatet signert og vil fortsette å importere til nøkkellager med kommandoen nedenfor.
- Importrotsertifikat er gitt av leverandøren
keytool -importcert -alias root -file root -keystore bloggerflare.jks
- Importer mellomsertifikat
keytool -importcert -alias intermediate -file intermediate -keystore bloggerflare.jks
Merk: uten å importere root og intermediate, vil du ikke kunne importere domene sertifikat til nøkkellager. Hvis du har mer enn ett mellomprodukt, må du importere dem alle.
- Importer domene sertifikat
keytool -importcert -file bloggerflare.cer -keystore bloggerflare.jks -alias bloggerflare
og du vil få en bekreftelse på at den ble installert.
Sertifikatsvar ble installert i nøkkellager
Flott, så sertifikatnøkkellageret er klart nå. La oss gå til neste trinn.
Hvis du er ny på SSL og interessert i å vite mer, registrer deg på dette nettbaserte kurset – SSL/TLS-operasjoner.
Aktiver SSL i Tomcat
Forutsatt at du fortsatt er logget på Tomcat-serveren, gå til conf-mappen
- Ta en sikkerhetskopi av server.xml-filen
- Gå til
SSLEnabled="true" scheme="https" keystoreFile="ssl/bloggerflare.jks" keystorePass="chandan" clientAuth="false" sslProtocol="TLS"
- Ikke glem å endre filnavnet og passordet for nøkkellageret med ditt
- Start tomcat på nytt og du skal se at Tomcat er tilgjengelig over HTTPS
Søt!
Standard HTTPS-port
Hvorfor?
Vel, hvis du ser på skjermbildet ovenfor, får jeg tilgang til Tomcat over 8080 med https som ikke er standard og noen flere grunner.
- Du vil ikke be brukere om å bruke tilpasset port
- Nettleseren vil gi advarsel når sertifikatet utstedes på domenenavnet uten porten
Så ideen er å få Tomcat til å lytte på 443-porten slik at den er tilgjengelig litt over https:// uten portnummeret.
For å gjøre det, rediger server.xml med din favorittredigerer
- Gå til
- Endre port fra 8080 til 443
- Det skal se slik ut
<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" />
- Start Tomcat på nytt og få tilgang til applikasjonen din med https uten noe portnummer
Imponerende, det er en suksess!
SSL/TLS sårbarhetstest
Til slutt vil vi utføre en test for å sikre at den ikke er sårbar for trusler på nettet.
Det er mange nettbaserte verktøy som jeg diskuterte her, og her vil jeg bruke SSL Labs.
- Gå til SSL Labs og skriv inn URL-en for å starte testen
Og den er GRØNN – A rating.
Det er imidlertid alltid en god idé å rulle nedover rapporten og se om du finner noen sårbarhet og fikse den.
Så det var alt for i dag.
Jeg håper dette hjelper deg å kjenne prosedyren for å sikre Tomcat med SSL/TLS-sertifikat. Hvis du er interessert i å lære mer så vil jeg anbefale dette på det sterkeste kurs.