Guía paso a paso para habilitar HTTPS o SSL de forma correcta en el servidor Apache Tomcat: puerto 8443

Publicado: 2021-04-03

Hace casi 12 años que comencé a usar Apache Tomcat. Creo que cuando hice mi primer proyecto de grado, estaba en la versión 1.x de Tomcat. Ahora ya está en la versión 8.0 . Principalmente he estado en contacto con Tomcat Server en mi vida laboral diaria, simplemente no puedo vivir sin él.

En Crunchify ya hemos publicado casi 40 artículos sobre Apache Tomcat . En la mayor parte del tutorial, ejecuté el servidor en el puerto 8080, que es el puerto predeterminado configurado en el archivo server.xml .

En este tutorial, repasaremos todos los pasos en detalle sobre how to enable HTTPS/SSL on Apache Tomcat Server .

Empecemos:

Paso 1. Crear almacén de claves

keytool : generaremos una clave segura usando el comando keytool , que es una herramienta de administración de claves y certificados.

Mando:

El archivo se creará en la carpeta /Users/Shared .

Estoy usando Mac OS X, así que reemplace su ruta en consecuencia si está en Windows. He usado la contraseña 123456 .

Genere crunchify.keystore para la configuración HTTPS de Apache Tomcat - Consejos de Crunchify

Paso 2. Crear solicitud de firma de certificado autofirmado

Introduzca la contraseña: 123456

Paso 3. Verifiquemos primero que Tomcat se esté ejecutando en el puerto 8080 a través de HTTP.

Start el servidor Tomcat usando el comando: <tomcat_home> startup.sh .

Asegúrese de estar en la ubicación correcta de la ruta Tomcat.

Presiona la URL: http://localhost:8080 para asegurarte de que el servidor esté funcionando.

Asegúrese de que Apache Tomcat se esté ejecutando

Etapa 4. Ahora verifique la instancia de Tomcat en el puerto 8443 a través de HTTPS.

  • Ahora verifique el puerto 8443 (URL HTTPS/SSL).
  • Hit URL: https://localhost:8443
  • Debería ver un mensaje de error. La página no debería cargarse en absoluto.

El inicio del servidor Apache Tomcat falla sin el certificado adecuado

Paso-5. Actualice el archivo /conf/server.xml

Como hemos generado una solicitud de firma de certificado y almacén de claves anteriormente, debemos decirle a tomcat que lo use.

  • Abra el archivo server.xml que se encuentra en <tomcat_home>/conf/ y modifique la configuración.
  • En nuestro caso, es la carpeta /Users/Shared/apache-tomcat-9.0.30/conf .

Agregue la siguiente sección directamente al archivo server.xml:

  • Aquí la contraseña es 123456 que usé en Step-1 .
  • Protocolo: HTTP/1.1

Habilite HTTPS en el archivo server.xml para Apache Tomcat

Guardar el archivo. A continuación, detendremos e iniciaremos el servidor Tomcat.

Paso-6. Detenga e inicie Apache Tomcat.

  • bash-3.2$ /Usuarios/Compartido/apache-tomcat-9.0.30/bin/shutdown.sh
  • bash-3.2$ /Usuarios/Compartido/apache-tomcat-9.0.30/bin/startup.sh

Paso-7. Compruebe la URL HTTPS y la certificación: https://localhost:8443

Ahora presione la URL segura HTTPS nuevamente para verificar que su página se cargó correctamente.

Cromo:

  • De forma predeterminada, Chrome Blocks all insecure HTTPS .
  • Habilite Chrome flag para cargar certificados no válidos para recursos cargados desde localhost
    1. Ir a cromo
    2. Abrir pestaña
    3. escriba: chrome://flags/#allow-insecure-localhost
    4. Habilitar bandera desde el menú desplegable
    5. Relanzamiento de Chrome

Google Chrome permitir-inseguro-localhost - Apache Tomcat

Safari y Mozilla Firefox:

  • Accept invalid certificate error y visite el sitio.

Debería ver la página de Apache Tomcat cargando a través de HTTPS en el puerto 8443

Apache tomcat ejecutándose en el puerto 8443 a través de HTTPS

Estas listo. ¿Has notado red padlock ? No te preocupes. No hemos comprado el certificado SSL de Verisign o Comodo.

En el entorno de producción, es posible que no vea ese signo de cruz roja.

Haga clic en el certificado en el navegador y nuestro certificado autofirmado predeterminado debería ser valid for 90 días.

Consulte el Certificado Crunchify que hemos creado en el paso 1

Punto de bonificación:

¿Cómo verificar el cert content de su certificado usando el comando keytool ?

Resultado: