Portál AbcLinuxu, 30. října 2025 18:22
V prvom rade potrebujeme vytvoriť serverový certifikát. Tomcat si najlepšie rozumie s certifikátmi a kľúčmi vytvorenými pomocou javového nástroja keytool. Úložisko a kľúče spolu s ďalšími informáciami vytvoríme príkazom:
keytool -genkey -alias tomcat -keyalg RSA -keysize 2048 -validity 730 -keystore /opt/qip/tomcat/conf/tomcatkeystore Enter keystore password: Re-enter new password: What is your first and last name? [Unknown]: moj-tomcat-server.firma.sk What is the name of your organizational unit? [Unknown]: Sieťové služby What is the name of your organization? [Unknown]: Firma What is the name of your City or Locality? [Unknown]: Mesto What is the name of your State or Province? [Unknown]: Štát What is the two-letter country code for this unit? [Unknown]: SK Is CN=moj-tomcat-server.firma.sk, OU=Sieťové služby, O=Firma, L=Mesto, ST=Štát, C=SK correct? [no]: yes Enter key password for <tomcat> (RETURN if same as keystore password):
Toto by možno stačilo na základné zabezpečenie spojenia certifikátom podpísaným samým sebou. Lenže taký certifikát spôsobuje najrôznejšie varovania a výnimky v prehliadači. Preto treba certifikát podpísať dôveryhodnou autoritou, v tomto prípade podnikovou certifikačnou autoritou. V druhom kroku vytvoríme žiadosť o certifikát:
keytool -certreq -keyalg RSA -alias tomcat -keystore /opt/qip/tomcat/conf/tomcatkeystore -file moj-tomcat-server.csrSúbor pošleme certifikačnej autorite na podpis. Spôsob podpisovania certifikátu je mimo rozsah tohto zápisku. Keď dostaneme späť podpísaný certifikát v súbore
moj-tomcat-server.cer vo formáte base64, vložíme ho do úložiska príkazom:
keytool -import -alias tomcat -keystore /opt/qip/tomcat/conf/tomcatkeystore -file moj-tomcat-server.cerV ďalšom kroku upravíme súbor
tomcat/conf/server.xml tak, aby počúval na portoch 80 a 443 približne takto:
.
.
.
</GlobalNamingResources>
<!-- Define the Tomcat Stand-Alone Service -->
<Service name="Catalina">
<!-- Non-SSL Connector - Start -->
<Connector port="80"
maxHttpHeaderSize="8192"
maxThreads="150"
minSpareThreads="25"
maxSpareThreads="75"
enableLookups="false"
redirectPort="443"
acceptCount="100"
connectionTimeout="20000"
disableUploadTimeout="true" />
<!-- Non-SSL Connector - End -->
<!-- SSL Connector - Start -->
<Connector port="443"
maxHttpHeaderSize="8192"
maxThreads="150"
minSpareThreads="25"
maxSpareThreads="75"
enableLookups="false"
disableUploadTimeout="true"
acceptCount="100"
scheme="https"
secure="true"
clientAuth="false"
sslProtocol="TLS"
keystoreType="JKS"
keystoreFile="/opt/qip/tomcat/conf/tomcatkeystore"
keystorePass="verysecurepassword"/>
<!-- SSL Connector - End -->>
.
.
.
</Service>
A na záver treba zabezpečiť aby klient ktorý sa pripája na port 80 bol presmerovaný na port 443 cez zabezpečené spojenie. To sa docieli upravením súboru tomcat/conf/web.xml približne takto:
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
.
.
.
<security-constraint>
<web-resource-collection>
<web-resource-name>Entire Application</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
>/user-data-constraint>
</security-constraint>
</web-app>
Užívateľ sa pripojí na http://moj-tomcat-server.firma.sk, je automaticky presmerovaný na https://moj-tomcat-server.firma.sk . Certifikát poskytnutý serverom je podpísaný dôveryhodnou autoritou, je automaticky overený v prehliadači a celá komukácia je zašifrovaná. Audítor môže byť spokojný.
Tiskni
Sdílej:
Ale teď vážně. Pokud budeš mít svůj certifikát podepsaný od některé z našich (nebo SK) CA, měl bys importovat kompletní certifikační cestu do keystore, protože na 100% tam nebudou a některým aplikacím by se to nemuselo zrovna líbit. Faktem je, že málo aplikací pracujících s certifikáty dodržuje pravidla práce s cert. materiálem. A už vůbec je obrovská škoda, že zrovna české CA neposkytují OCSP protokol.
keytool -import -alias tomcat -keystore /opt/qip/tomcat/conf/tomcatkeystore -trustcacerts -file firemnárootca.cer
keytool -import -alias tomcat -keystore /opt/qip/tomcat/conf/tomcatkeystore -trustcacerts -file firemnásubca.cer
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.