Hvordan implementerer man SSL i Apache Tomcat?

En trin-for-trin guide til opsætning af SSL/TLS-certifikat i Tomcat-serveren.

En af de væsentlige opgaver for at sikre Tomcat er at konfigurere SSL-certifikat, så webapplikationen er tilgængelig via HTTPS.

Der er mange måder at opnå dette på.

  • Du kan afslutte SSL ved en load balancer
  • Implementer SSL på CDN-niveau
  • Brug webservere som Apache, Nginx osv. foran og implementer SSL der

Men hvis du ikke bruger nogen af ​​ovenstående eller bruger dette som front-end eller har brug for at implementere SSL direkte i Tomcat, så vil følgende hjælpe dig.

I denne artikel vil vi gøre som nedenfor.

  • Generer CSR (anmodning om certifikatsignering)
  • Importer certifikat i en nøglelagerfil
  • Aktiver SSL i Tomcat
  • Konfigurer TLS-protokol
  • Skift Tomcat til at lytte på 443-port
  • Test Tomcat for SSL-sårbarhed

Lad os begynde…

Forberedelse til SSL/TLS-certifikat

Det første skridt ville være at generere en CSR og få den underskrevet af certifikatmyndighed. Vi vil bruge nøgleværktøj til at administrere certifikaterne.

  • Log ind på Tomcat-serveren
  • Gå til tomcat-installationsstien
  • Opret en mappe kaldet ssl
  • Udfør kommando for at oprette et nøglelager
keytool -genkey -alias domainname -keyalg RSA -keysize 2048 -keystore filename.jks

Der er to variable i ovenstående kommandoer, som du måske ønsker at ændre.

  • Alias ​​– bedre at holde det meningsfuldt, så du i fremtiden hurtigt kan genkende det. Jeg foretrækker at beholde det som et domænenavn.
  • Filnavn – igen, det er godt at beholde domænenavnet.
  •   Sådan deler du Skype-højdepunkter AKA en Skype-historie

    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 opmærksom på for- og efternavnsspørgsmålet. Det er lidt misvisende synes jeg. Det er ikke dit navn, men domænenavnet, som du vil sikre.

    Når du har givet alle oplysningerne, vil den oprette en nøglelagerfil i en nuværende arbejdsmappe.

    Det næste ville være at generere en ny CSR med det nyoprettede nøglelager med kommandoen nedenfor.

    keytool -certreq -alias bloggerflare -keyalg RSA -file bloggerflare.csr -keystore bloggerflare.jks

    Dette vil oprette en CSR, som du skal sende til certifikatmyndigheden for at få den underskrevet. Hvis du leger rundt, kan du overveje at bruge en GRATIS certifikatudbyder ellers gå efter en premium.

      Sådan zoomer du ind og ud af et Word-dokument

    Jeg fik certifikatet underskrevet og vil fortsætte med at importere til nøglelager med nedenstående kommando.

    • Import rodcertifikat er givet af udbyderen
    keytool -importcert -alias root -file root -keystore bloggerflare.jks
    • Import mellemliggende certifikat
    keytool -importcert -alias intermediate -file intermediate -keystore bloggerflare.jks

    Bemærk: uden at importere root & intermediate, vil du ikke være i stand til at importere domænecertifikat til nøglelageret. Hvis du har mere end et mellemprodukt, skal du importere dem alle.

    • Importer domænecertifikat
    keytool -importcert -file bloggerflare.cer -keystore bloggerflare.jks -alias bloggerflare

    og du vil få en bekræftelse på, at den er installeret.

    Certifikatsvar blev installeret i nøglelageret

    Fantastisk, så certifikatnøglelager er klar nu. Lad os gå videre til næste trin.

    Hvis du er ny til SSL og interesseret i at vide mere, så tilmeld dig dette online kursus – SSL/TLS operationer.

    Aktiver SSL i Tomcat

    Hvis du antager, at du stadig er logget på Tomcat-serveren, skal du gå til mappen conf

    • Tag en sikkerhedskopi af server.xml-filen
    • Gå til
    SSLEnabled="true" scheme="https" keystoreFile="ssl/bloggerflare.jks" keystorePass="chandan" clientAuth="false" sslProtocol="TLS"
    • Glem ikke at ændre nøglelagerets filnavn og adgangskode med dit
    • Genstart tomcat, og du skulle se, at Tomcat er tilgængelig via HTTPS

    Sød!

    Standard HTTPS-port

    Hvorfor?

    Nå, hvis du ser på ovenstående skærmbillede, har jeg adgang til Tomcat over 8080 med https, hvilket ikke er standard og nogle flere grunde.

    • Du ønsker ikke at bede brugere om at bruge tilpasset port
    • Browseren vil advare, da certifikatet udstedes på domænenavnet uden porten
      Sådan bruger du Siri til at oprette en note i Evernote

    Så idéen er at få Tomcat til at lytte på 443-porten, så den er tilgængelig lige over https:// uden portnummeret.

    For at gøre det skal du redigere server.xml med din foretrukne editor

    • Gå til
    • Skift port fra 8080 til 443
    • Det skal se sådan ud
    <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" />
    • Genstart Tomcat og få adgang til din applikation med https uden noget portnummer

    Imponerende, det er en succes!

    SSL/TLS sårbarhedstest

    Til sidst vil vi udføre en test for at sikre, at den ikke er sårbar over for onlinetrusler.

    Der er mange online værktøjer, som jeg diskuterede her, og her vil jeg bruge SSL Labs.

    • Gå til SSL Labs og indtast URL’en for at starte testen

    Og den er GRØN – A rating.

    Det er dog altid en god idé at rulle ned i rapporten og se, om du finder en sårbarhed og rette den.

    Så det var alt for i dag.

    Jeg håber, at dette hjælper dig med at kende proceduren for at sikre Tomcat med SSL/TLS-certifikat. Hvis du er interesseret i at lære mere, så vil jeg varmt anbefale dette Rute.