analytics

lunes, 21 de agosto de 2017

Tomcat embebido https


Vamos a configurar Tomcat desde Java (embebido) para utilizar un certificado de seguridad y poder acceder de manera segura a las aplicaciones que despliegue nuestro Tomcat. (vía HTTPS)

En nuestra función principal o Main:
.....
                Tomcat tomcat = new Tomcat();
                tomcat = new Tomcat();
                
                Service service = tomcat.getService();
                service.addConnector(getSslConnector());

                tomcat.getHost().setAutoDeploy(true);
                tomcat.getHost().setDeployOnStartup(true);
                tomcat.start();
             
                tomcat.getServer().await();
....

La función de configuración del service de Tomcat: (en función de la extensión de nuestro certificado, la keyStoreType tomará el valor de PEM, JKS o PKCS12)


private static Connector getSslConnector() {
    Connector connector = new Connector();
    connector.setPort(8090);
    connector.setSecure(true);
    connector.setScheme("https");
    connector.setAttribute("keyAlias", "tomcat");
    connector.setAttribute("keystorePass", "password");
//    connector.setAttribute("keystoreType", "JKS");
    connector.setAttribute("keystoreType", "PEM");
//    connector.setAttribute("keystoreType", "PKCS12");
    connector.setAttribute("keystoreFile", "private.pem");
    connector.setAttribute("clientAuth", "false");
    connector.setAttribute("protocol", "HTTP/1.1");
    connector.setAttribute("sslProtocol", "TLS");
    connector.setAttribute("maxThreads", "200");
    connector.setAttribute("protocol", "org.apache.coyote.http11.Http11AprProtocol");
    connector.setAttribute("SSLEnabled", true);
    return connector;

}

Una manera más moderna de hacer esto es con Spring Boot, donde además encontraremos más tutoriales y nos dará menos problemas. Aquí y Aquí tienes otros posts relativos a Spring Boot y Tomcat.

No hay comentarios:

Publicar un comentario