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…
Indholdsfortegnelse
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.
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.
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å 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.