Sikre Tomcat med SSL/TLS: Trinn-for-trinn guide

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:

  • Alias – det er lurt å bruke et beskrivende navn, for eksempel domenenavnet, slik at du enkelt kan identifisere det senere.
  • Filnavn – her kan du også bruke domenenavnet.
  • 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.