I want to run embedded tomcat that uses only HTTPS (8443). I do not want 8080 port to be used at all. Any idea about ?
Connector httpsConnector = new Connector(); httpsConnector.setPort(httpsPort); httpsConnector.setSecure(true); httpsConnector.setScheme("https"); httpsConnector.setAttribute("keystoreFile", appBase + "/.keystore"); httpsConnector.setAttribute("clientAuth", "false"); httpsConnector.setAttribute("sslProtocol", "TLS"); httpsConnector.setAttribute("SSLEnabled", true); Tomcat tomcat = new Tomcat(); tomcat.getService().addConnector(httpsConnector); tomcat.setPort(8080); Connector defaultConnector = tomcat.getConnector(); defaultConnector.setRedirectPort(8443); tomcat.setBaseDir("."); tomcat.getHost().setAppBase(appBase); StandardServer server = (StandardServer) tomcat.getServer(); AprLifecycleListener listener = new AprLifecycleListener(); server.addLifecycleListener(listener);
Thanks
You can configure two virtual hosts (one for http and one for https) which connect to the respective Tomcat backend servlets. You can look at this question for config examples. You want to do almost exactly the same thing.
The HTTP Connector element represents a Connector component that supports the HTTP/1.1 protocol. It enables Catalina to function as a stand-alone web server, in addition to its ability to execute servlets and JSP pages.
You would have to remove the connector defined in [tomcat-dir]/conf/server.xml which binds it to 8080 and have a separate connector for HTTPS.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With