Jak implementovat SSL v Apache Tomcat?
Podrobný průvodce nastavením certifikátu SSL/TLS na serveru Tomcat.
Jedním ze základních úkolů pro zabezpečení Tomcatu je konfigurace SSL certifikátu, aby byla webová aplikace přístupná přes HTTPS.
Existuje mnoho způsobů, jak toho dosáhnout.
- SSL můžete ukončit na nástroji pro vyrovnávání zatížení
- Implementujte SSL na úrovni CDN
- Vpředu použijte webové servery jako Apache, Nginx atd. a implementujte tam SSL
Pokud však nic z výše uvedeného nepoužíváte nebo toto používáte jako front-end nebo potřebujete nasadit SSL přímo v Tomcatu, pomůže vám následující.
V tomto článku uděláme, jak je uvedeno níže.
- Generovat CSR (žádost o podpis certifikátu)
- Import certifikátu do souboru úložiště klíčů
- Povolte SSL v Tomcatu
- Konfigurace protokolu TLS
- Změňte Tomcat tak, aby naslouchal na portu 443
- Otestujte Tomcat na zranitelnost SSL
Začněme…
Table of Contents
Příprava na certifikát SSL/TLS
Prvním krokem by bylo vygenerovat CSR a nechat jej podepsat certifikační autorita. Ke správě certifikátů použijeme nástroj keytool.
- Přihlaste se k serveru Tomcat
- Přejděte na instalační cestu tomcat
- Vytvořte složku nazvanou ssl
- Proveďte příkaz k vytvoření úložiště klíčů
keytool -genkey -alias domainname -keyalg RSA -keysize 2048 -keystore filename.jks
Ve výše uvedených příkazech jsou dvě proměnné, které možná budete chtít změnit.
Příklad:
[[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ěnujte pozornost otázce na jméno a příjmení. To je podle mě trochu zavádějící. Není to vaše jméno, ale název domény, kterou chcete zabezpečit.
Jakmile poskytnete všechny informace, vytvoří soubor úložiště klíčů v aktuálním pracovním adresáři.
Dále by bylo vygenerovat nové CSR s nově vytvořeným úložištěm klíčů pomocí příkazu níže.
keytool -certreq -alias bloggerflare -keyalg RSA -file bloggerflare.csr -keystore bloggerflare.jks
Tím se vytvoří CSR, kterou musíte odeslat certifikační autoritě, aby ji podepsala. Pokud si hrajete, můžete zvážit použití bezplatného poskytovatele certifikátů, jinak si vezměte prémiový.
Dostal jsem certifikát podepsaný a budu pokračovat v importu do úložiště klíčů pomocí níže uvedeného příkazu.
- Importní kořenový certifikát je dán poskytovatelem
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 adresáře a meziproduktu nebudete moci importovat certifikát domény do úložiště klíčů. Pokud máte více než jeden meziprodukt, musíte je importovat všechny.
- Importujte certifikát domény
keytool -importcert -file bloggerflare.cer -keystore bloggerflare.jks -alias bloggerflare
a obdržíte potvrzení, že byl nainstalován.
Odpověď na certifikát byla nainstalována do úložiště klíčů
Skvělé, takže úložiště klíčů certifikátů je nyní připraveno. Pojďme k dalšímu kroku.
Pokud s SSL začínáte a chcete se dozvědět více, přihlaste se do tohoto online kurzu – Operace SSL/TLS.
Povolte SSL v Tomcatu
Za předpokladu, že jste stále přihlášeni k serveru Tomcat, přejděte do složky conf
- Vytvořte zálohu souboru server.xml
- Přejděte do sekce
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ého
- Restartujte Tomcat a měli byste vidět, že Tomcat je přístupný přes HTTPS
Bonbón!
Standardní port HTTPS
Proč?
No, když se podíváte na výše uvedený snímek obrazovky, přistupuji k Tomcatu přes 8080 pomocí https, což není standardní a některé další důvody.
- Nechcete žádat uživatele, aby používali vlastní port
- Prohlížeč vydá varování, protože certifikát je vydán na název domény bez portu
Myšlenka tedy je, aby Tomcat naslouchal na portu 443, aby byl přístupný jen přes https:// bez čísla portu.
Chcete-li to provést, upravte soubor server.xml pomocí svého oblíbeného editoru
- Přejděte na
- Změňte port z 8080 na 443
- Mělo by to 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 ke své aplikaci pomocí https bez čísla portu
Působivé, je to úspěch!
Test zranitelnosti SSL/TLS
Nakonec provedeme test, abychom zajistili, že není zranitelný vůči online hrozbám.
Existuje mnoho online nástrojů, o kterých jsem zde hovořil, a zde budu používat SSL Labs.
- Jít do SSL Labs a zadejte adresu URL pro zahájení testu
A je to ZELENÉ – hodnocení.
Vždy je však dobré posunout zprávu dolů a zjistit, zda nenajdete nějakou chybu zabezpečení a opravit ji.
Tak to bylo pro dnešek vše.
Doufám, že vám to pomůže poznat postup zabezpečení Tomcatu pomocí SSL/TLS certifikátu. Pokud máte zájem dozvědět se více, vřele doporučuji toto kurs.