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…

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.

  Co je about:blank a jak jej odstraníte?
  • Alias ​​– je lepší, aby to mělo smysl, abyste je v budoucnu mohli rychle rozpoznat. Preferuji to ponechat jako doménové jméno.
  • Název souboru – opět je dobré ponechat název domény.
  • 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ý.

      15 dobrých online kurzů pro výuku DevOps

    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
      Nejlepší kalkulačky poplatků za PayPal, které můžete použít před odesláním faktury

    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.