Instalación de Tomcat 9 con SSL
Paquetes generales
sudo apt update
# Soporte de español, pueden revisarse los idiomas disponibles con locale -a
sudo apt-get install language-pack-es
sudo apt install -y ufw openssl letsencrypt nano unzip zip
Tomcat
sudo apt install -y tomcat9
Cambiar puerto de Tomcat (opcional)
# Cambiar a puerto 80: <Connector port="8080" a "80" y <Connector ... redirectPort="8443" a "443"
nano /tomcat/conf/server.xml
Certificado SSL
Instalación
export DOMAIN=domain.tld
#Instalar certbot
sudo apt install -y certbot
## Crear certificado
certbot certonly --standalone -d $DOMAIN
# Verificar
ls /etc/letsencrypt/live/$DOMAIN/
# Copiar archivos pertinentes
cd /etc/letsencrypt/live/$DOMAIN/
cp {cert,chain,privkey}.pem /var/lib/tomcat9/conf/
## Permisos
sudo chown tomcat:tomcat /var/lib/tomcat9/conf/*.pem
Configuración
# Archivo de configuración
sudo nano /var/lib/tomcat9/conf/server.xml
<!-- Agregar configuraciones (el puerto por defecto es 8443) -->
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true">
<SSLHostConfig>
<Certificate certificateFile="/var/lib/tomcat9/conf/cert.pem"
certificateKeyFile="/var/lib/tomcat9/conf/privkey.pem"
certificateChainFile="/var/lib/tomcat9/conf/chain.pem"
type="RSA" />
</SSLHostConfig>
</Connector>
# Reiniciar servicio
sudo service tomcat9 restart
Habilitar CORS
sudo nano /var/lib/tomcat9/conf/web.xml
<filter>
<filter-name>CorsFilter</filter-name>
<filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
<init-param>
<param-name>cors.allowed.origins</param-name>
<param-value>*</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CorsFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
# Reiniciar servicio
sudo service tomcat9 restart
Asignar más memoria
#Añadir export JAVA_OPTS="-Djava.awt.headless=true -Xms1024m -Xmx1024m"
nano /usr/share/tomcat9/bin/setenv.sh
# Reiniciar servicio
sudo service tomcat9 restart