Configuración Servidor Tomcat

Certificados TLS

El primer paso para ejecutar esta guía es obtener los certificados TLS.

Recuerde que el tamaño de las claves es un aspecto importante de la seguridad, actualmente está generalizado el tamaño de 2048 bis, pero la recomendación es usar 4096 bits para una mayor robustez.

Plantilla configuración segura

Añadimos la configuración en el fichero /etc/tomcat9/server.xml dentro de las etiquetas <Server> y <Service>.

/etc/tomcat9/server.xml

<Server>   <Service>     <Connector port="443"              protocol="org.apache.coyote.http11.Http11NioProtocol"              SSLEnabled="true"              maxThreads="150"              scheme="https"              secure="true"              keystoreFile="Añade aqui la ruta de tu certificado"              keystorePass="Contraseña del certificado"              clientAuth="false"              sslProtocol="TLSv1.2, TLSv1.3"              sslEnabledProtocols="TLSv1.2, TLSv1.3"              ciphers="ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256"      />   </Service> </Server>

Habilitar TLS

El fichero de configuración de Tomcat que hay que  modificar es el server.xml , en él vamos a habilitar el TLS y la configuración básica:

Configuración básica

<Connector port="8080" protocol="HTTP/1.1"                connectionTimeout="20000"                redirectPort="<https_port>" />      <Connector port="<https_port>"                       protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true"                        maxThreads="150" scheme="https" secure="true"                        maxHttpHeaderSize="32768"                        clientAuth="want"                        sslEnabledProtocols="TLSv1.2, TLSv1.3"                        ciphers= "<list of ciphers to use>"                        keystoreFile="<path to keystore location>"                       keystorePass="<keystore password>"

Redireccionamiento a HTTPS

Para redireccionar todo el trafico a HTTPS, debemos añadir esta configuración a nuestro fichero server.xml:

Redireccionamiento HTTPS

<Connector port="80" protocol="HTTP/1.1"                connectionTimeout="20000"                redirectPort="443" />      <Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true"                                   maxThreads="150" scheme="https" secure="true"                        maxHttpHeaderSize="32768"                        clientAuth="want"                       sslEnabledProtocols="TLSv1.2, TLSv1.3"                        ciphers="HIGH:!aNULL:!RC4:!MD5:@STRENGTH"               keystoreFile="path to keystore location"                       keystorePass="keystore password"       />

Habilitar HSTS

El HSTS tiene como objetivo impedir que un atacante convierta una conexión HTTPS en HTTP. Además, todos los enlaces de la página se visualizarán como HTTPS. Para ello deberemos añadir el siguiente código en el fichero web.xml :

Habilitar HSTS