En detaljert veiledning for å konfigurere et SSL/TLS-sertifikat på en Tomcat-server.
En fundamental oppgave for å sikre en Tomcat-server er konfigureringen av et SSL-sertifikat, som muliggjør tilgang til nettapplikasjonen via HTTPS.
Det eksisterer forskjellige metoder for å realisere dette.
- Du kan avslutte SSL ved hjelp av en lastbalanserer.
- Implementer SSL på CDN-nivå.
- Anvend webservere som Apache eller Nginx foran Tomcat, og utfør SSL-konfigurasjonen der.
Dersom ingen av de nevnte løsningene er aktuelle, eller hvis du ønsker å implementere SSL direkte i Tomcat, vil veiledningen nedenfor hjelpe deg.
I denne artikkelen skal vi gjennomføre følgende:
- Generere en CSR (Certificate Signing Request).
- Importere sertifikatet til en nøkkellagerfil.
- Aktivere SSL i Tomcat.
- Konfigurere TLS-protokollen.
- Endre Tomcat for å lytte på port 443.
- Teste Tomcat for SSL-sårbarheter.
La oss begynne…
Forberedelser for SSL/TLS-sertifikat
Det første steget er å generere en CSR og få den signert av en sertifiseringsinstans. Vi skal bruke nøkkelverktøyet for å håndtere sertifikatene.
- Logg inn på Tomcat-serveren.
- Naviger til Tomcat-installasjonskatalogen.
- Lag en mappe som heter «ssl».
- Kjør kommandoen for å lage en nøkkellager.
keytool -genkey -alias domainname -keyalg RSA -keysize 2048 -keystore filename.jks
Det er to variable i kommandoen ovenfor som du kan trenge å justere:
Eksempel:
[[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 spørsmålet kan være litt forvirrende. Det er ikke ditt navn, men domenenavnet du vil sikre.
Etter at du har fylt ut all nødvendig informasjon, blir en nøkkellagerfil opprettet i gjeldende arbeidskatalog.
Det neste steget er å generere en CSR ved hjelp av den nylig opprettede nøkkellagerfilen med kommandoen nedenfor:
keytool -certreq -alias bloggerflare -keyalg RSA -file bloggerflare.csr -keystore bloggerflare.jks
Dette genererer en CSR som må sendes til sertifiseringsmyndigheten for signering. Hvis du bare tester, kan du vurdere å benytte en gratis sertifikatleverandør, ellers velg en betalt løsning.
Etter å ha mottatt det signerte sertifikatet, fortsetter vi med å importere det til nøkkellageret ved hjelp av følgende kommandoer:
- Importer rotsertifikatet levert av leverandøren:
keytool -importcert -alias root -file root -keystore bloggerflare.jks
- Importer mellomliggende sertifikat(er):
keytool -importcert -alias intermediate -file intermediate -keystore bloggerflare.jks
Merk: Uten å importere rot- og mellomliggende sertifikater, vil du ikke kunne importere domenesertifikatet til nøkkellageret. Hvis det finnes flere mellomliggende sertifikater, må disse også importeres.
- Importer domenesertifikatet:
keytool -importcert -file bloggerflare.cer -keystore bloggerflare.jks -alias bloggerflare
Du vil motta en bekreftelse på at installasjonen var vellykket.
Sertifikatsvar er installert i nøkkellageret.
Flott, sertifikatnøkkellageret er nå klart. La oss fortsette til neste steg.
Hvis du er ny innenfor SSL og er interessert i å lære mer, meld deg på dette nettbaserte kurset – SSL/TLS-operasjoner.
Aktivere SSL i Tomcat
Forutsatt at du fortsatt er logget på Tomcat-serveren, naviger til «conf»-mappen.
- Ta en sikkerhetskopi av filen «server.xml».
- Finn seksjonen
SSLEnabled="true" scheme="https" keystoreFile="ssl/bloggerflare.jks" keystorePass="chandan" clientAuth="false" sslProtocol="TLS"
- Husk å endre filnavnet og passordet for nøkkellageret med dine egne verdier.
- Start Tomcat på nytt, og du skal nå kunne få tilgang til Tomcat via HTTPS.
Supert!
Standard HTTPS-port
Hvorfor er det nødvendig?
Som du kan se i skjermbildet ovenfor, får jeg tilgang til Tomcat over port 8080 med HTTPS, som ikke er standard. Det er noen flere grunner til å endre dette:
- Du vil ikke at brukere skal måtte bruke en tilpasset port.
- Nettleseren vil vise en advarsel hvis sertifikatet utstedes til domenenavnet uten å angi en port.
Tanken er derfor å få Tomcat til å lytte på port 443, slik at den er tilgjengelig via https:// uten portnummer.
For å gjøre dette, rediger filen «server.xml» med din foretrukne editor:
- Finn
- Endre porten fra 8080 til 443.
- Det skal se omtrent 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 du skal nå kunne få tilgang til applikasjonen med https uten portnummer.
Imponerende, det er en suksess!
SSL/TLS-sårbarhetstest
Til slutt skal vi utføre en test for å sikre at serveren ikke er sårbar for trusler på nett.
Det finnes mange nettbaserte verktøy for dette formålet. Her skal vi bruke SSL Labs.
- Gå til SSL Labs og skriv inn URL-en for å starte testen.
Og den er GRØNN – med A-karakter.
Det er likevel lurt å gå gjennom rapporten for å se om det finnes sårbarheter som må fikses.
Det var alt for denne gangen.
Jeg håper at denne veiledningen har hjulpet deg med å forstå prosedyren for å sikre Tomcat med SSL/TLS-sertifikat. Hvis du er interessert i å lære mer, anbefaler jeg dette kurset.