Configurar https en TOMCAT con CertBot

En esta ocasion vamos a configurar el https en TOMCAT webserver utilizando Certbot para la generación de los certificados.

Software

  • Ubuntu Server 20.04
  • Certbot 1.29.0
  • Tomcat 9

Procedimiento

  • Ejecuta los siguientes comandos
sudo certbot certonly --standalone -d tomcat.luidasa.com
cd /etc/letsencrypt/live/tomcat.luidasa.com
sudo cp {cert,chain,privkey}.pem /opt/tomcat/conf/ 
sudo nano /opt/tomcat/conf/server.xml and modify
  • Localiza en el archivo y modificalo.
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true">
  <SSLHostConfig>
    <Certificate certificateFile="conf/cert.pem"
                 certificateKeyFile="conf/privkey.pem"
                 certificateChainFile="conf/chain.pem" />
  </SSLHostConfig>
</Connector>

....
<Connector port="8080" protocol="HTTP/1.1"
  connectionTimeout="20000"
  redirectPort="8443" />
  • Agrega la siguiente sentencia en el archivo web.xml, para forzar a siempre use https.
<security-constraint>
 <web-resource-collection>
   <web-resource-name>Protected Context</web-resource-name>
   <url-pattern>/*</url-pattern>
 </web-resource-collection>
 <user-data-constraint>
   <transport-guarantee>CONFIDENTIAL</transport-guarantee>
 </user-data-constraint>
</security-constraint>
  • Por ultimo reinicia el servicio de TOMCAT
sudo systemctl restart tomcat