Geekflare recibe el apoyo de nuestra audiencia. Podemos ganar comisiones de afiliación de los enlaces de compra en este sitio.
En Seguridad y Tomcat Última actualización: 25 de septiembre de 2023
Compartir en:
Escáner de seguridad de aplicaciones web Invicti - la única solución que ofrece verificación automática de vulnerabilidades con Proof-Based Scanning™.

Una guía paso a paso para configurar el certificado SSL/TLS en el servidor Tomcat.

Una de las tareas esenciales para asegurar Tomcat es configurar el certificado SSL, para que la aplicación web sea accesible a través de HTTPS.

Hay muchas formas de conseguirlo.

  • Puede terminar SSL en un equilibrador de carga
  • Implementar SSL a nivel de CDN
  • Utilizar servidores web como Apache, Nginx, etc. delante e implementar SSL allí

Sin embargo, si usted no está usando ninguna de las anteriores o está usando esto como un front-end o necesita implementar SSL directamente en Tomcat, entonces lo siguiente le ayudará.

En este artículo, haremos lo siguiente.

  • Generar CSR (Solicitud de firma de certificado)
  • Importar certificado en un almacén de claves de archivo
  • Habilitar SSL en Tomcat
  • Configurar el protocolo TLS
  • Cambiar Tomcat para escuchar en el puerto 443
  • Probar la vulnerabilidad SSL de Tomcat

Empecemos...

Preparación del certificado SSL/TLS

El primer paso sería generar un CSR y obtenerlo firmado por la autoridad de certificación. Utilizaremos la utilidad keytool para gestionar los certificados.

  • Iniciar sesión en el servidor Tomcat
  • Vaya a la ruta de instalación de tomcat
  • Cree una carpeta llamada ssl
  • Ejecute el comando para crear un almacén de claves
keytool -genkey -alias domainname -keyalg RSA -keysize 2048 -keystore filename.jks

Hay dos variables en los comandos anteriores que tal vez desee cambiar.

  1. Alias - mejor mantenerlo significativo para que en el futuro pueda reconocerlo rápidamente. Yo prefiero mantenerlo como un nombre de dominio.
  2. Filename - de nuevo, es bueno mantener el nombre de dominio.

Ej:

[root@geekflare ssl]# keytool -genkey -alias bloggerflare -keyalg RSA -keysize 2048 -keystore bloggerflare.jks
Introduzca la contraseña del almacén de claves:
Vuelva a introducir la nueva contraseña:
¿Cuál es su nombre y apellidos?
[Desconocido]: bloggerflare.com
¿Cuál es el nombre de su unidad organizativa?
[Desconocido]: Blogging
¿Cuál es el nombre de su organización?
[Desconocido]: Geek Flare
¿Cuál es el nombre de su ciudad o localidad?
[Desconocido]:
¿Cuál es el nombre de su estado o provincia?
[Desconocido]:
¿Cuál es el código de país de dos letras de esta unidad?
[Desconocido]:
¿Es CN=bloggerflare.com, OU=Blogging, O=Geek Flare, L=Unknown, ST=Unknown, C=Unknown correcto?
[no]: sí

Introduzca la contraseña de la clave para <bloggerflare>
(RETURN si es la misma que la contraseña del almacén de claves):

[root@geekflare ssl]#

Preste atención a la pregunta sobre el nombre y el apellido. Creo que esto es un poco engañoso. No es su nombre, sino el nombre del dominio que desea asegurar.

Una vez que proporcione toda la información, se creará un archivo keystore en un directorio de trabajo actual.

Lo siguiente sería generar una nueva RSE con el almacén de claves recién creado con el siguiente comando.

keytool -certreq -alias bloggerflare -keyalg RSA -file bloggerflare.csr -keystore bloggerflare.jks

Esto creará una CSR que deberá enviar a la autoridad de certificación para que la firme. Si está jugando, puede considerar utilizar un proveedor de certificados GRATUITO o bien optar por uno premium.

Conseguí el certificado firmado y procedí a importarlo al almacén de claves con el siguiente comando.

  • Importar certificado raíz es dado por el proveedor
keytool -importcert -alias root -file root -keystore bloggerflare.jks
  • Importar certificado intermedio
keytool -importcert -alias intermediate -file intermediate -keystore bloggerflare.jks

NotaSi no importa el certificado raíz y el intermedio, no podrá importar el certificado de dominio al almacén de claves. Si tiene más de un intermedio, deberá importarlos todos.

  • Importar certificado de dominio
keytool -importcert -file bloggerflare.cer -keystore bloggerflare.jks -alias bloggerflare

y, obtendrá una confirmación de que se ha instalado.

La respuesta del certificado fue instalada en el keystore

Genial, así que el almacén de claves de certificados ya está listo. Pasemos al siguiente paso.

Si usted es nuevo en SSL y está interesado en saber más entonces inscríbase en este curso en línea - Operaciones SSL/TLS.

Habilitar SSL en Tomcat

Suponiendo que todavía está conectado al servidor Tomcat, vaya a la carpeta conf

  • Tome una copia de seguridad del archivo server.xml
  • Vaya a la sección<Connector port="8080" protocol="HTTP/1.1" y añada una línea
SSLEnabled="true" scheme="https" keystoreFile="ssl/bloggerflare.jks" keystorePass="chandan" clientAuth="false" sslProtocol="TLS"
  • No olvide cambiar el nombre del archivo keystore y la contraseña por los suyos
  • Reinicie tomcat y debería ver que Tomcat es accesible sobre HTTPS

tomcat-ssl

¡Genial!

Puerto HTTPS estándar

¿Por qué?

Bueno, si se fija en la captura de pantalla anterior, estoy accediendo a Tomcat sobre 8080 con https que no es estándar y algunas razones más.

  • No quiere pedir a los usuarios que utilicen un puerto personalizado
  • El navegador dará una advertencia ya que el certificado se emite sobre el nombre de dominio sin el puerto

Así que la idea es hacer que Tomcat escuche en el puerto 443 para que sea accesible sólo a través de https:// sin el número de puerto.

Para ello, edite server.xml con su editor favorito

  • Vaya a <Connector port="8080"
  • Cambie el puerto de 8080 a 443
  • Debería quedar así
<Conector port="443" protocol="HTTP/1.1"
connectionTimeout="20000"
SSLEnabled="true" scheme="https" keystoreFile="ssl/bloggerflare.jks" keystorePass="chandan" clientAuth="false" sslProtocol="TLS"
redirectPort="8443" />
  • Reinicie Tomcat y acceda a su aplicación con https sin ningún número de puerto

tomcat-sobre-https

Impresionante¡es un éxito!

Prueba de vulnerabilidad SSL/TLS

Por último, realizaremos una prueba para asegurarnos de que no es vulnerable a las amenazas en línea.

Hay muchas herramientas online de las que ya hablé aquí, y aquí utilizaré SSL Labs.

  • Vaya a SSL Laboratorios e introduzca la URL para comenzar la prueba

tomcat-ssl-labs

Y está VERDE - calificación A.

Sin embargo, siempre es una buena idea desplazarse por el informe y ver si encuentra alguna vulnerabilidad y solucionarla.

Así que eso fue todo por hoy.

Espero que esto le ayude a conocer el procedimiento de asegurar Tomcat con certificado SSL/TLS. Si está interesado en aprender más, entonces le recomiendo encarecidamente este curso.

  • Chandan Kumar
    Autor
    Chandan Kumar es el fundador de Geekflare. Ha ayudado a millones de personas a destacar en el ámbito digital. Apasionado de la tecnología, su misión es explorar el mundo y ampliar el crecimiento de profesionales y empresas.
Gracias a nuestros patrocinadores
Más lecturas sobre seguridad
Potencia tu negocio
Algunas de las herramientas y servicios que le ayudarán a hacer crecer su negocio.
  • Invicti utiliza el Proof-Based Scanning™ para verificar automáticamente las vulnerabilidades identificadas y generar resultados procesables en tan solo unas horas.
    Pruebe Invicti
  • Web scraping, proxy residencial, gestor de proxy, desbloqueador web, rastreador de motores de búsqueda, y todo lo que necesita para recopilar datos web.
    Pruebe Brightdata
  • Monday.com es un sistema operativo de trabajo todo en uno que te ayuda a gestionar proyectos, tareas, trabajo, ventas, CRM, operaciones, flujos de trabajo y mucho más.
    Prueba Monday
  • Intruder es un escáner de vulnerabilidades en línea que encuentra puntos débiles de ciberseguridad en su infraestructura, para evitar costosas violaciones de datos.
    Prueba Intruder