Detailní návod, jak nastavit SSL/TLS certifikát na serveru Tomcat.
Jedním ze základních kroků při zabezpečování Tomcatu je konfigurace SSL certifikátu, která zajistí, že webová aplikace bude dostupná prostřednictvím protokolu HTTPS.
Existuje několik způsobů, jak toho dosáhnout:
- Ukončení SSL na nástroji pro vyrovnávání zátěže.
- Implementace SSL na úrovni CDN.
- Využití webových serverů, jako je Apache nebo Nginx, pro implementaci SSL.
Pokud však žádnou z těchto možností nevyužíváte, nebo je používáte jako front-end, a potřebujete SSL nasadit přímo v Tomcatu, následující postup vám pomůže.
V tomto článku si ukážeme, jak postupovat při:
- Generování CSR (žádost o podpis certifikátu).
- Importu certifikátu do souboru úložiště klíčů.
- Povolení SSL v Tomcatu.
- Konfiguraci protokolu TLS.
- Změně konfigurace Tomcatu tak, aby naslouchal na portu 443.
- Testování Tomcatu na zranitelnosti SSL.
Začněme…
Příprava na zavedení SSL/TLS certifikátu
Prvním krokem je vygenerování CSR a jeho podepsání certifikační autoritou. Pro správu certifikátů použijeme nástroj keytool.
- Přihlaste se k serveru Tomcat.
- Přejděte do instalačního adresáře Tomcatu.
- Vytvořte novou složku s názvem „ssl“.
- Spusťte příkaz pro vytvoření úložiště klíčů.
keytool -genkey -alias domainname -keyalg RSA -keysize 2048 -keystore filename.jks
Ve výše uvedeném příkazu jsou dvě proměnné, které budete pravděpodobně chtít změnit:
- Alias – Měl by být popisný, abyste ho mohli v budoucnu snadno rozpoznat. Doporučuje se používat název domény.
- Název souboru – Opět je dobré používat název domény.
Příklad:
[[email protected] ssl]# keytool -genkey -alias bloggerflare -keyalg RSA -keysize 2048 -keystore bloggerflare.jks
Zadejte heslo úložiště klíčů:
Znovu zadejte nové heslo:
Jaké je vaše křestní jméno a příjmení?
[Neznámé]: bloggerflare.com
Jaký je název vaší organizační jednotky?
[Neznámé]: Blogování
Jaký je název vaší organizace?
[Neznámé]: Geek Flare
Jaký je název vašeho města nebo lokality?
[Neznámé]:
Jaký je název vašeho státu nebo provincie?
[Neznámé]:
Jaký je dvoupísmenný kód země pro tuto jednotku?
[Neznámé]:
Je CN=bloggerflare.com, OU=Blogování, O=Geek Flare, L=Neznámé, ST=Neznámé, C=Neznámé správné?
[ne]: ano
Zadejte heslo klíče pro <bloggerflare>
(RETURN, pokud je stejné jako heslo úložiště klíčů):
[[email protected] ssl]#
Věnujte pozornost otázce na jméno a příjmení. Může být trochu zavádějící, protože se nejedná o vaše jméno, ale o název domény, kterou chcete zabezpečit.
Po zadání všech informací se vytvoří soubor úložiště klíčů v aktuálním pracovním adresáři.
Následně je třeba vygenerovat nové CSR pomocí nově vytvořeného úložiště klíčů pomocí příkazu níže:
keytool -certreq -alias bloggerflare -keyalg RSA -file bloggerflare.csr -keystore bloggerflare.jks
Tím se vytvoří CSR, kterou je třeba odeslat certifikační autoritě k podepsání. Pokud si to chcete vyzkoušet, můžete použít bezplatného poskytovatele certifikátů, nebo si můžete pořídit prémiový certifikát.
Jakmile získáte certifikát, pokračujte v jeho importu do úložiště klíčů pomocí následujících příkazů:
- Import kořenového certifikátu, který poskytne certifikační autorita:
keytool -importcert -alias root -file root -keystore bloggerflare.jks
- Import prostředního certifikátu:
keytool -importcert -alias intermediate -file intermediate -keystore bloggerflare.jks
Poznámka: Bez importu kořenového a prostředního certifikátu nebudete moci importovat certifikát domény do úložiště klíčů. Pokud máte více než jeden prostřední certifikát, musíte je importovat všechny.
- Importujte certifikát domény:
keytool -importcert -file bloggerflare.cer -keystore bloggerflare.jks -alias bloggerflare
Po úspěšném importu obdržíte potvrzení, že byl certifikát nainstalován.
Odpověď na certifikát byla nainstalována do úložiště klíčů.
Výborně, úložiště certifikátů je nyní připraveno. Můžeme přejít k dalšímu kroku.
Pokud se o SSL zajímáte a chcete se dozvědět více, přihlaste se do tohoto online kurzu: Operace SSL/TLS.
Aktivace SSL v Tomcatu
Předpokládejme, že jste stále přihlášeni k serveru Tomcat, přejděte do složky „conf“.
- Zálohujte soubor „server.xml“.
- Vyhledejte sekci
<Connector port="8080" protocol="HTTP/1.1"
a přidejte následující řádek:
SSLEnabled="true" scheme="https" keystoreFile="ssl/bloggerflare.jks" keystorePass="chandan" clientAuth="false" sslProtocol="TLS"
- Nezapomeňte změnit název souboru úložiště klíčů a heslo podle svých údajů.
- Restartujte Tomcat a měli byste vidět, že Tomcat je dostupný přes HTTPS.
Výborně!
Standardní port HTTPS
Proč je to důležité?
Protože při pohledu na výše uvedený snímek obrazovky je Tomcat přístupný přes port 8080 pomocí HTTPS, což není standardní, a to z několika důvodů:
- Nechcete uživatele nutit používat vlastní port.
- Prohlížeč zobrazí varování, protože certifikát je vydán pro název domény bez portu.
Záměrem je tedy, aby Tomcat naslouchal na portu 443, takže bude přístupný jen přes https:// bez zadávání čísla portu.
Provedete to úpravou souboru „server.xml“ pomocí vašeho oblíbeného editoru:
- Přejděte na řádek
<Connector port="8080"
. - Změňte port z 8080 na 443.
- Měl by vypadat takto:
<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" />
- Restartujte Tomcat a přistupujte k vaší aplikaci pomocí https bez čísla portu.
Skvělé, tohle se povedlo!
Testování zranitelnosti SSL/TLS
Nakonec provedeme test, abychom zajistili, že náš server není zranitelný vůči online hrozbám.
Existuje mnoho online nástrojů, které můžete použít. V tomto případě použijeme SSL Labs.
- Přejděte na SSL Labs a zadejte URL adresu pro zahájení testu.
A máme ZELENOU známku.
Vždy je ale dobré se na výsledky podívat detailněji, abyste si byli jisti, že se někde neskrývá žádná bezpečnostní chyba.
To je pro dnešek vše.
Doufám, že vám tento návod pomohl pochopit proces zabezpečení Tomcatu pomocí SSL/TLS certifikátu. Pokud máte zájem o další informace, doporučuji tento kurz.