diff --git a/jams-server/src/main/java/net/jami/jams/server/core/TomcatConnectorFactory.java b/jams-server/src/main/java/net/jami/jams/server/core/TomcatConnectorFactory.java
index 107408c3eb84ef807c8a5f01de191a288f58adad..ee9bbe8dcfc51be5e6c7e6f4479e147fa9e1fe8d 100644
--- a/jams-server/src/main/java/net/jami/jams/server/core/TomcatConnectorFactory.java
+++ b/jams-server/src/main/java/net/jami/jams/server/core/TomcatConnectorFactory.java
@@ -33,15 +33,11 @@ import java.nio.file.Paths;
 public class TomcatConnectorFactory {
 
     public static Connector getSSLConnectorWithTrustStore(String certificateFile, String keyFile, int port) {
+        log.info(System.getProperty("user.dir") + File.separator + "keystore.jks");
         Connector connector = getSSLConnectorWithoutTrustStore(certificateFile, keyFile, port);
-        if (Files.exists(Paths.get(System.getProperty("user.dir") + File.separator + "keystore.jks"))) {
-            connector.setAttribute("truststoreFile", System.getProperty("user.dir") + File.separator + "keystore.jks");
-            connector.setAttribute("clientAuth", "optional");
-            connector.setAttribute("truststorePassword", "changeit");
-        } else {
-            log.error("Could not find a keystore for the SSL Connector - this is critical as client auth will not be available!");
-            log.error("Proceeding to boot tomcat with just SSL parameters...");
-        }
+        connector.setAttribute("truststoreFile", System.getProperty("user.dir") + File.separator + "keystore.jks");
+        connector.setAttribute("clientAuth", "optional");
+        connector.setAttribute("truststorePassword", "changeit");
         return connector;
     }
 
@@ -55,7 +51,7 @@ public class TomcatConnectorFactory {
         connector.setAttribute("SSLCertificateFile", System.getProperty("user.dir") + File.separator + certificateFile);
         connector.setAttribute("SSLCertificateKeyFile", System.getProperty("user.dir") + File.separator + keyFile);
         connector.setAttribute("protocol", "HTTP/1.1");
-        connector.setAttribute("sslProtocol", "TLSv1.3");
+        connector.setAttribute("sslProtocol", "TLS");
         connector.setAttribute("maxThreads", "200");
         connector.setAttribute("SSLEnabled", "true");
         return connector;
diff --git a/jams-server/src/main/java/net/jami/jams/server/core/TomcatLauncher.java b/jams-server/src/main/java/net/jami/jams/server/core/TomcatLauncher.java
index 82e7a693b8558962221f07fa57a6473862310712..effbf826e066c8d329e13dce07a2d1d7ebba6e86 100644
--- a/jams-server/src/main/java/net/jami/jams/server/core/TomcatLauncher.java
+++ b/jams-server/src/main/java/net/jami/jams/server/core/TomcatLauncher.java
@@ -24,15 +24,20 @@ package net.jami.jams.server.core;
 
 import lombok.extern.slf4j.Slf4j;
 import org.apache.catalina.WebResourceRoot;
+import org.apache.catalina.connector.Connector;
 import org.apache.catalina.core.StandardContext;
 import org.apache.catalina.startup.Tomcat;
 import org.apache.catalina.webresources.DirResourceSet;
 import org.apache.catalina.webresources.JarResourceSet;
 import org.apache.catalina.webresources.StandardRoot;
+import org.apache.coyote.http11.Http11NioProtocol;
+import org.apache.tomcat.util.descriptor.web.ErrorPage;
 
 import java.awt.*;
 import java.io.File;
 import java.net.URI;
+import java.nio.file.Files;
+import java.nio.file.Paths;
 
 
 //This class boots the tomcat server which provides the subsystem
@@ -40,10 +45,11 @@ import java.net.URI;
 @Slf4j
 public class TomcatLauncher {
 
-    private Tomcat tomcat = null;
+    private Tomcat tomcat = new Tomcat();
+    private static Connector connector;
+    private static StandardContext context;
 
     public TomcatLauncher(int port) {
-        tomcat = new Tomcat();
         tomcat.getService().addConnector(TomcatConnectorFactory.getNoSSLConnector(port));
         this.startServer();
     }
@@ -51,17 +57,25 @@ public class TomcatLauncher {
     public TomcatLauncher(int port, String certificateFile, String keyFile) {
         //If running in SSL mode, we need a trusts store in order to let clients authenticate.
         //In this case this is a bit of a dirty hack...
-        log.error("This functionality is not yet implemented!");
+
+        log.info(System.getProperty("user.dir") + File.separator + "keystore.jks");
+
+        if(Files.exists(Paths.get(System.getProperty("user.dir") + File.separator + "keystore.jks")))
+            tomcat.getService().addConnector(TomcatConnectorFactory.getSSLConnectorWithTrustStore(certificateFile, keyFile, port));
+        else{
+            connector = TomcatConnectorFactory.getSSLConnectorWithoutTrustStore(certificateFile, keyFile, port);
+            tomcat.getService().addConnector(connector);
+        }
+        this.startServer();
     }
 
 
     public void startServer() {
         String jarName = System.getProperty("user.dir") + File.separator + "jams-server.jar";
         log.info("JAR Resource File = " + jarName);
-        StandardContext context = (StandardContext) tomcat.addWebapp("", new File(System.getProperty("user.dir")).getAbsolutePath());
-        //Hack to prevent useless verbose messages.
+        context = (StandardContext) tomcat.addWebapp("", new File(System.getProperty("user.dir")).getAbsolutePath());
+        log.info("Serving application from: " + new File(System.getProperty("user.dir")).getAbsolutePath());
 
-        context.getJarScanner().setJarScanFilter((jarScanType, s) -> false);
         WebResourceRoot resources = new StandardRoot(context);
         if (jarName.contains(".jar")) {
             resources.addPreResources(new JarResourceSet(resources, "/WEB-INF/classes", jarName, "/net/jami/jams/server/servlets"));
@@ -80,18 +94,12 @@ public class TomcatLauncher {
         }
         context.setResources(resources);
         //We always go to login by default.
-        context.addWelcomeFile("web/login");
-        try {
-            tomcat.start();
-            //Try to pop-up Web-UI
-            if (Desktop.isDesktopSupported() && Desktop.getDesktop().isSupported(Desktop.Action.BROWSE)) {
-                Desktop.getDesktop().browse(new URI("https://localhost:8080"));
-            }
-            else log.info("There is no graphical interface on this system - please connect remotely!");
-        } catch
-        (Exception e) {
-            log.error("Web-server has failed to start - this is critical, error {}",e.getMessage());
-        }
+        context.addWelcomeFile("index");
+        ErrorPage errorPage = new ErrorPage();
+        errorPage.setErrorCode(404);
+        errorPage.setLocation("/index");
+        context.addErrorPage(errorPage);
+        try{tomcat.start();}catch (Exception e){ log.error("Could not start web-server!");}
     }
 
     public void stopTomcat(){
diff --git a/server.key b/server.key
new file mode 100644
index 0000000000000000000000000000000000000000..6cd1eba71265f1a899bc9329a73c501e10e6733a
--- /dev/null
+++ b/server.key
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC3YPxyascSByOp
+oLVs64yyFW3WY95bd6JgVWltDwGD/Q0ByzVCk4cxLZuNcxJoAuzUOB125X/LHh1F
+H44h9NRCR+2J7Lm4nRmeYfLsmKDz5pD+oT83YtwO38G+BVC2vA6Cehr1BVGMLtDc
+qctuoorKhkXFjL8ShblC/hHdn2yIGAtVrWazqSFsuxGBiXTcswq6H2j2BwYm3aLV
+p0kgAnRocg3GIqCKf6muTjqffG2dG8XHgcG1zI1bXKLMGXlqcE+bQ55rLNLYtZRV
+fdkJA9IsKPy3ZTh5xJvtWGVdrFMSpZDMvzFiM6Lzs+O3ui7V58zMppGCTZ9pltZZ
+67QI+KOtAgMBAAECggEASU9knPlDDFn+T9oHrbudS7R1bLgQNNDnAUwkEY1mNbX8
+dTMf37XK3kY1YZ8XRK2msFCetuGY7ULkwLWUxM5z7OuEcxdISB3GGCNgUmXSMq+C
+V8lu1F2ZS/j4I1dMpUEZK+BU1o+BwmEU7qKSyXABvGVhj1BtMqJzJe0ch1Ustlr4
+25353CAeVjRfNKyUY3yd34XBBWgi+bb1ULCJ1668iYfUq8PZDi9AW8Bb32wQ3B72
+vcYIVm2WmlCRJelCApEG2w1yDlsrG3dpYQzyoianiNv2lt1VhemD5ORKey5LitWV
+encgTrlA4C+6gQfQ5y1hXx8YEQUgIX74leHsDeisAQKBgQDmcH0woTrIQ4fGb//N
+5DMYRYRYlFNqTtSdzMN7kw3Rm4gaaoWusqZd3Kdl4ZshKhV7zDHG7uXdvmyDdVFZ
+vtTH2LRd6BkO6v+2dQ7voPQ3zVKPk6+H0yh4AkLpN8VHLunFDppvA5vn+59Juf1S
+m/qOVvpaHmNpzy9F9RummebXzQKBgQDLuCzL5j8wX6gt+tT+6LM2Q8shyD8iglgi
+le0Ag5HeXJ89WQdIvv0IfK0Wj670qjZ9mrp2eSTvyjSQTnjwu3IqYzsX59zgjSX9
+h7qe19QZyfi/WDNDVx9d2zbKZjomxLCdY4CAVq63M/OCnI1kt6M2rVLg23YKY8Yg
+fPEtP/dbYQKBgFLxaE4pqkPM8sD9LSDJo4537yQG92NLToIh4rbG/nFUvw9rCgUQ
+botYUbR9GN4+DI+Lttr4wCopUVubzZU099ea64jlcqeI9FOTHLYpw92V/MKLEOId
+ofJYNgdFuK9fdmskT3fn36UHT5U06bZjSDMVoXTwfS3nkgdnKvWzbYB9AoGAMQht
+T85lWyFK+3YqGgisSd1bYRAvkgDJcdmgJ8WDMIAem8d351yAzrAjgRCoTZ9Cakz5
+oFZcO5Lxv+IDXf3f5q/no0NdeHbAtBsdIepU1Lg2NOfnvseTdyWyNFkSmg4xbFBs
+t3clqlbIv6Eqrxk8IYbqMdDgwnNtVph7/CYvRUECgYEAtcL7Sontba0kg0p/v3Ce
+PajsbSSPcT0sUfMbxFo20OY/knq74uarUrlvWKkR4nbNG8jHzBCe3qg9eZXN51da
+GDRed44Um6PAy7itQh/Ak0qv1FsKhBvXQ6DMhoFeMQvbj9H/3w5JOCceAITHTw/O
+FeuOOnairNrVyJ0Dx2hGn+U=
+-----END PRIVATE KEY-----
diff --git a/server.pem b/server.pem
new file mode 100644
index 0000000000000000000000000000000000000000..90ad7c962367e23aa85aac73fdd2bb5b960e7a50
--- /dev/null
+++ b/server.pem
@@ -0,0 +1,22 @@
+-----BEGIN CERTIFICATE-----
+MIIDlzCCAn+gAwIBAgIUS+MahayfvPw6t8UPeN8mmbo9rpswDQYJKoZIhvcNAQEL
+BQAwWzELMAkGA1UEBhMCQ0ExCjAIBgNVBAgMATExCjAIBgNVBAcMATExCjAIBgNV
+BAoMATExCjAIBgNVBAsMATExCjAIBgNVBAMMATExEDAOBgkqhkiG9w0BCQEWATEw
+HhcNMTkxMDI1MDAzNDA0WhcNMjAxMDI0MDAzNDA0WjBbMQswCQYDVQQGEwJDQTEK
+MAgGA1UECAwBMTEKMAgGA1UEBwwBMTEKMAgGA1UECgwBMTEKMAgGA1UECwwBMTEK
+MAgGA1UEAwwBMTEQMA4GCSqGSIb3DQEJARYBMTCCASIwDQYJKoZIhvcNAQEBBQAD
+ggEPADCCAQoCggEBALdg/HJqxxIHI6mgtWzrjLIVbdZj3lt3omBVaW0PAYP9DQHL
+NUKThzEtm41zEmgC7NQ4HXblf8seHUUfjiH01EJH7YnsubidGZ5h8uyYoPPmkP6h
+Pzdi3A7fwb4FULa8DoJ6GvUFUYwu0Nypy26iisqGRcWMvxKFuUL+Ed2fbIgYC1Wt
+ZrOpIWy7EYGJdNyzCrofaPYHBibdotWnSSACdGhyDcYioIp/qa5OOp98bZ0bxceB
+wbXMjVtcoswZeWpwT5tDnmss0ti1lFV92QkD0iwo/LdlOHnEm+1YZV2sUxKlkMy/
+MWIzovOz47e6LtXnzMymkYJNn2mW1lnrtAj4o60CAwEAAaNTMFEwHQYDVR0OBBYE
+FHYVoTymVeBDFSU+OkpojP8aiScLMB8GA1UdIwQYMBaAFHYVoTymVeBDFSU+Okpo
+jP8aiScLMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAEvuNCKx
+VqZlQbpwESZIP7Q4KtZ2v0B9yF4LvE/UOdcklcHymkdxhqFKnxEt0UkRH/E9VQdU
+1cVbxf+fvX+h7HaOKJIldwCIxb+FnEWU78Z3OvFAVZsfsZ8A0ouyixnP7UdZ/3Dn
+UJAdrbRHk/yWWb6GcNopusi1rZ6GYGJfjhUH+TLcm9Plfcs9E3zS1ETlmt5yT1PN
+QUPfHTEyjYkWEVhBeKBcfDVmsKIcrMlBoNhxApC/AwIZQYBY0PeGkZKHMYyXt6JL
+qB/z0VJye2Co02sdJjSVbkUkyEmHP4mnD1lb1Oe+qeYmNutsK5llmzCUi+YBhzP7
+yxyhJjHf157BmCs=
+-----END CERTIFICATE-----
diff --git a/webapp/index.php b/webapp/index.php
new file mode 100644
index 0000000000000000000000000000000000000000..c37615a1e2b655936681e31d1c0aad0bda6164a6
--- /dev/null
+++ b/webapp/index.php
@@ -0,0 +1,4 @@
+<?php
+
+phpinfo();
+?>