Cómo instalar Tomcat 10 en Debian 10 Buster

En esta entrada vamos a ver cómo instalar Tomcat 10 en Debian 10 Buster paso a paso, de forma que podrás desplegar aplicaciones de servidor basadas en la plataforma Jakarta EE 9 sobre tu máquina o VPS Debian.

Antes de instalar Tomcat 10 en Debian 10 Buster

Para poder seguir los pasos de esta guía de instalación de Tomcat 10 en Debian 10 Buster es importante partir de los siguientes requerimientos mínimos:

  • Un sistema Debian 10 Buster actualizado.
  • Entorno de ejecución de Java (JRE), versión 8 ó superior.
  • Un usuario con privilegios de sudo.
  • Acceso a Internet.

Si todavía no dispones del entorno mínimo necesario, es posible que te resulte útil consultar antes nuestra guía de instalación de Java en Debian 10 Buster.

También necesitaremos algunas herramientas del sistema que obtendremos de los repositorios de Debian 10, para lo que actualizamos las listas de paquetes:

~$ sudo apt update

E instalamos los paquetes necesarios:

~$ sudo apt install -y tar wget

Cómo descargar Tomcat 10 en Debian 10 Buster

Vamos a descargar Tomcat 10 para Debian 10 desde la página de descargas del sitio oficial, ya que los repositorios del sistema no ofrecen paquetes para esta versión:

como descargar tomcat 10 para debian 10 buster

Encontraremos paquetes en los formatos .zip y .tar.gz, siendo más interesante este último. Podemos realizar la descarga directamente desde el navegador o, si trabajamos remotamente, desde consola con la herramienta wget:

~$ wget https://downloads.apache.org/tomcat/tomcat-10/v10.0.14/bin/apache-tomcat-10.0.14.tar.gz

Cómo instalar Tomcat 10 en Debian 10 Buster

Para instalar Tomcat 10 en Debian 10 tendremos que realizar una serie de tareas que nos permitan tratar esta plataforma como un servicio más del sistema.

Empezaremos creando el usuario y grupo con el que Tomcat 10 correrá como servicio:

~$ sudo useradd -U -m -d /opt/tomcat -k /dev/null -s /bin/false tomcat

Descomprimimos el paquete que acabamos de descargar en la ruta que hemos establecido como directorio personal del usuario tomcat:

~$ sudo -u tomcat tar xf apache-tomcat-10.0.14.tar.gz -C /opt/tomcat/

Como el subdirectorio que se acaba de crear contiene números de versión en su nombre, podemos renombrarlo o crear un enlace simbólico sin números de versión, para facilitar la instalación y mantenimiento:

~$ sudo ln -s /opt/tomcat/apache-tomcat-10.0.14/ /opt/tomcat/apache-tomcat

Crearemos el archivo de unidad para Systemd:

~$ sudo nano /etc/systemd/system/tomcat10.service

Con el contenido siguiente:

[Unit]
Description=Tomcat 10.0 servlet container para Debian 10
After=network.target

[Service]
Type=forking
User=tomcat
Group=tomcat
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom"
Environment="CATALINA_BASE=/opt/tomcat/apache-tomcat"
Environment="CATALINA_HOME=/opt/tomcat/apache-tomcat"
Environment="CATALINA_PID=/opt/tomcat/apache-tomcat/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"
ExecStart=/opt/tomcat/apache-tomcat/bin/startup.sh
ExecStop=/opt/tomcat/apache-tomcat/bin/shutdown.sh

[Install]
WantedBy=multi-user.target

Una vez guardado el archivo, Tomcat 10 puede ser tratado ya como servicio.

Iniciamos el servicio con el comando systemctl:

~$ sudo systemctl start tomcat10

Podemos comprobar en cualquier momento el estado del servicio con el comando systemctl status tomcat10:

como instalar tomcat 10 en debian 10 buster

Si necesitamos que Tomcat 10 inicie automáticamente en cada arranque de Debian 10, debemos habilitar el servicio:

~$ sudo systemctl enable tomcat10

Firewall

En caso de tener activado el firewall UFW en el sistema, para poder acceder desde red al servicio Tomcat 10 habrá que añadir una regla para el puerto 8080/TCP:

~$ sudo ufw allow 8080/tcp

Y queremos ofrecer conexiones seguras a nuestros visitantes será necesario añadir la regla para el puerto seguro, el 8443/TCP:

~$ sudo ufw allow 8443/tcp

Acceso

Para acceder a Tomcat 10 desde un navegador indicaremos la dirección de la máquina Debian 10 (IP, nombre DNS, dominio, etc.) indicando el puerto de conexión 8080.

Por ejemplo, la máquina Debian 10 sobre la que hemos preparado este tutorial es accesible en el subdominio debian10.local.lan, de modo que podremos acceder utilizando http://debian10.local.lan:8080 como URL:

instalar tomcat 10 en debian 10 buster

Se mostrará la página principal de la plataforma, donde encontraremos enlaces a las aplicaciones administrativas y a la documentación local (que es también una aplicación, la aplicación /docs).

instalacion de tomcat 10 en debian 10 buster

En cuanto a las aplicaciones administrativas, sólo son accesibles localmente, para acceder desde red tendremos que realizar algunos ajustes.

Cómo configurar Tomcat 10 en Debian 10 Buster

Acceso desde red a las aplicaciones administrativas

Las aplicaciones administrativas, /manager y /host-manager, tienen restringido el acceso permitiendo únicamente conexiones locales. Para permitir acceso desde red, útil si trabajamos remotamente, editaremos el archivo context.xml de cada una de ellas.

En el caso de la aplicación /manager:

~$ sudo nano /opt/tomcat/apache-tomcat/webapps/manager/META-INF/context.xml

Buscaremos la directiva Valve dentro del bloque Context principal:

...
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
...

Y la encerraremos en un bloque de comentarios XML:

...
<!--
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
-->
...

Ya podemos guardar los cambios.

En el caso de la aplicación /host-manager haremos lo propio con su archivo context.xml:

~$ sudo nano /opt/tomcat/apache-tomcat/webapps/host-manager/META-INF/context.xml

Cómo crear usuarios de Tomcat 10 en Debian 10

Algunas aplicaciones requieren autenticación básica de usuario, mediante usuarios definidos con ciertos roles. Es el caso de las aplicaciones administrativas, que exigirán el acceso con un usuario que tenga los roles admin-gui y manager-gui.

Para crear usuarios en Tomcat 10 editaremos el archivo tomcat-users.xml:

~$ sudo nano /opt/tomcat/apache-tomcat/conf/tomcat-users.xml

Antes de la etiqueta de cierre del bloque tomcat-users añadiremos una directiva user similar a esta:

...
        <user username="chacho" password="XXXXXXXX" roles="admin-gui,manager-gui"/>
</tomcat-users>

Obviamente puedes utilizar el nombre de usuario que quieras con su propia contraseña.

Guardados los cambios, los usuarios quedarán disponibles.

Acceso a las aplicaciones administrativas

Una vez realizadas las configuraciones anteriores será posible acceder a las aplicaciones administrativas de Tomcat 10 en Debian 10 Buster, directamente o desde la página principal de la plataforma. La primera vez que accedamos se nos solicitará las credenciales de usuario.

Por ejemplo, para acceder a la aplicación «Server Status» (/manager/status):

como configurar tomcat 10 en debian 10 buster

Accedemos con el usuario y contraseña que definimos anteriormente y se mostrará la página de la aplicación.

tomcat 10 en debian 10 buster

Si a continuación accedemos al gestor de aplicaciones o «Manager App» (/manager/hml) no necesitaremos autenticar el acceso, ya que esta aplicación y la anterior en realidad forman parte de la misma (/manager).

tomcat 10 para debian 10 buster

Pero si accedemos a la aplicación «Host Manager» (/host-manager/html) sí habrá que introducir usuario y contraseña, tras lo que se permitirá también el acceso.

tomcat 10 sobre debian 10 buster

Cómo desplegar aplicaciones en Tomcat 10 desde archivos WAR

Si disponemos de alguna aplicación en formato WAR (archivos con extensión .war) lista para desplegar, accederemos al gestor de aplicaciones o «Manager App«. Buscaremos la sección «Desplegar«, dentro de esta «Archivo WAR a desplegar» y, mediante «Seleccionar archivo«, localizaremos el archivo .war.

desplegar aplicaciones war en tomcat 10 para debian 10 buster

Con el archivo .war seleccionado, usaremos «Desplegar«, de modo que ser cargará dicho archivo en la plataforma y en unos instantes se recargará el gestor de aplicaciones.

Si todo ha ido bien, en la sección «Mensaje» aparecerá el texto «OK» y en la lista de aplicaciones aparecerá la sección correspondiente a la nueva aplicación, con los controles correspondientes para gestionarla:

instalar aplicaciones war en tomcat 10 para debian 10 buster

Podemos lanzar la aplicación desde el enlace correspondiente que aparece en la columna «Ruta«:

¡Así de sencillo!

Conexiones SSL en Tomcat 10 sobre Debian 10

En el caso de querer trabajar con conexiones seguras SSL mediante protocolo HTTPS es necesario disponer de archivos de clave de cifrado y certificado.

SSL para Tomcat 10 en sitios de Internet

Si sirves tus aplicaciones desde Internet es conveniente que utilices certificados firmados por autoridades certificadoras como Namecheap para ofrecer la máxima confiabilidad a tus visitantes.

SSL Certificate for just $8.88 with Namecheap

Estos servicios suelen requerir un archivo de solicitud de firma de certificado o CSR, obtenido a partir del archivo de clave.

Empezaremos creando un directorio para guardar el almacén de claves:

~$ sudo mkdir /etc/keys

Creamos la clave de cifrado con el comando keytool, indicando el almacén de claves donde la guardaremos (ubicado en la ruta que acabamos de crear):

~$ sudo keytool -genkey -keysize 2048 -keyalg RSA -alias tomcat10 -keystore /etc/keys/tomcat10.jks

Este comando es interactivo y solicitará cierta información, como la creación de una contraseña para el nuevo almacén de claves (o su clave de acceso, si has utilizado un almacén ya existente).

También se solicitará información pública que se incorporará al certificado, donde es muy importante que en el primer dato solicitado («¿Cuáles son su nombre y su apellido?«) indiquemos el dominio con el que se accede al servidor Debian 10.

Por ejemplo, en este tutorial el servidor Debian 10 es accesible en el subdominio debian10.local.lan, así que ese será el dato que introduzcamos en la pregunta mencionada:

...
¿Cuáles son su nombre y su apellido?
  [Unknown]:  debian10.local.lan
...

Con la clave ya creada e instalada, crearemos el archivo CSR que necesitamos para solicitar el certificado firmado:

~$ keytool -certreq -alias tomcat10 -keystore /etc/keys/tomcat10.jks -file tomcat10.csr

Se nos solicitará la clave de acceso al almacén de claves y obtendremos el archivo .csr en la ruta especificada en el parámetro -file. Podemos examinar el contenido de este archivo con el comando cat:

~$ cat tomcat10.csr
-----BEGIN NEW CERTIFICATE REQUEST-----
MIIC5zCCAc8CAQAwcjELMAkGA1UEBhMCRVMxEDAOBgNVBAgTB1Vua25vd24xEDAO
...
y0ZR2tB2NayYNQ8kM0GZAd+Boh5aVQczChdt
-----END NEW CERTIFICATE REQUEST-----

Normalmente los servicios como Namecheap no requieren el archivo en sí, sino su contenido, que será pegado en un formulario de solicitud.

SSL para Tomcat 10 en servidores locales o en pruebas

Si estás configurando un servicio para usar localmente, en pruebas, etc. bastará con disponer del certificado autofirmado que se crea junto con la clave de cifrado. En este caso, realiza los pasos del apartado anterior sin necesidad de crear el archivo CSR.

Configuración SSL

Para activar las conexiones SSL en Tomcat 10 editaremos el archivo server.xml:

~$ sudo nano /opt/tomcat/apache-tomcat/conf/server.xml

Dentro del bloque Service Catalina añadiremos un nuevo bloque Connector para manejar las conexiones SSL:

...
  <Service name="Catalina">
...
        <Connector port="8443"
                protocol="org.apache.coyote.http11.Http11NioProtocol"
                maxthreads="150"
                SSLEnabled="true">
                <UpgradeProtocol  className="org.apache.coyote.http2.Http2Protocol" />
                <SSLHostConfig>
                        <Certificate certificateKeystoreFile="/etc/keys/tomcat10.jks"
                                certificateKeystorePassword="XXXXXXXX" />
                </SSLHostConfig>
        </Connector>
...

Guardamos el archivo y reiniciamos el servicio:

~$ sudo systemctl restart tomcat10

Ya podemos acceder al servicio utilizando el protocolo HTTPS ofrecido en el puerto 8443.

Por ejemplo, siguiendo con la máquina Debian 10 de este tutorial, ahora podríamos acceder a Tomcat 10 utilizando https://debian10.local.lan:8443 como URL.

En caso de usar certificados autofirmados, el navegador mostrará una alerta:

como configurar ssl para tomcat 10 en debian 10 buster

Esto es normal, ya que el navegador no puede comprobar la validez del certificado al no existir firmas de autoridades certificadoras. Sin embargo, de alguna forma podremos continuar con la conexión y se mostrará la versión segura del sitio:

como configurar https para tomcat 10 en debian 10 buster

Obviamente, en caso de disponer de certificados firmados por autoridades certificadoras no se producirán molestos avisos.

Conclusión

Ahora que sabes cómo instalar Tomcat 10 en tu sistema Debian 10 Buster ya puedes desplegar aplicaciones basadas en Java, tanto de terceros como tus propios desarrollos, de manera sencilla y rápida.

Y si esta guía rápida te ha servido para instalar tu propia platafoma Tomcat 10 y quieres agradecérnoslo, puedes hacerlo dejando una propina a partir de 1 $ desde PayPal:

O, si te sientes especialmente agradecido, puedes invitarnos a un café:

¡Gracias!

2 comentarios en «Cómo instalar Tomcat 10 en Debian 10 Buster»

Deja un comentario

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información

ACEPTAR
Aviso de cookies