diff --git a/domainManager/Domain/src/code/Domain.java b/domainManager/Domain/src/code/Domain.java
index 5d04b5ef407d4c6fe668daad3abcf4c53da67958..6219db1dbc76728fcd7306e17be239f26326ec17 100644
--- a/domainManager/Domain/src/code/Domain.java
+++ b/domainManager/Domain/src/code/Domain.java
@@ -1,13 +1,24 @@
 package code;
 
+import java.io.FileInputStream;
 import java.io.IOException;
 import java.net.HttpURLConnection;
 import java.net.InetSocketAddress;
 import java.net.URL;
+import java.security.KeyStore;
 import java.sql.SQLException;
 import java.util.concurrent.Executors;
 import java.util.concurrent.ThreadPoolExecutor;
 
+import javax.net.ssl.KeyManagerFactory;
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.SSLEngine;
+import javax.net.ssl.SSLParameters;
+import javax.net.ssl.TrustManagerFactory;
+
+import com.sun.net.httpserver.HttpsConfigurator;
+import com.sun.net.httpserver.HttpsParameters;
+import com.sun.net.httpserver.HttpsServer;
 import org.json.JSONArray;
 import org.json.JSONException;
 import org.json.JSONObject;
@@ -18,71 +29,123 @@ import db.DBC;
 
 public class Domain {
 
-	static public int port=3001;
+	static public int port = 3001;
 
 	public static void main(String[] args) throws IOException, JSONException {
-		
-		ThreadPoolExecutor threadPoolExecutor = (ThreadPoolExecutor)Executors.newCachedThreadPool();
-		HttpServer server=HttpServer.create(new InetSocketAddress(port),0);
-
-		//chiamata per popolare moduli
-
-		URL url = new URL("https://gitlab.di.unipmn.it/alfredo/iotlabgw.edu-al.unipmn.it/-/raw/main/index.json");
-		HttpURLConnection con = (HttpURLConnection) url.openConnection();
-	
-		Helper.setConnectionSettings(con,"GET");
-
-		// leggo risposta
-		int status = con.getResponseCode();
-		//controllare ToDo
-		String content = Helper.getResponseFromConnection(con);
-		con.disconnect();
-
-		//manipolazione per ottenere i campi dei moduli
-		riempiModuli(content);
-
-		server.setExecutor(threadPoolExecutor);
-
-		server.createContext("/install/", new InstallHandler());
-		server.createContext("/start/", new StartHandler());
-		server.createContext("/stop/", new StopHandler());
-		server.createContext("/delete/", new DeleteHandler());
-		server.createContext("/secured/domains/", new TokenHandler());
-		server.createContext("/secured/services", new ServicesHandler());
-		server.createContext("/secured/priviledges", new PriviledgesHandler());
-
-		server.start();
-		System.out.println("Domain in ascolto su "+Helper.getSelfURL());
+
+		ThreadPoolExecutor threadPoolExecutor = (ThreadPoolExecutor) Executors.newCachedThreadPool();
+		// HttpServer server=HttpServer.create(new InetSocketAddress(port),0);
+
+		HttpsServer server = HttpsServer.create(new InetSocketAddress(port), 0);// port gets set here
+		// HttpServer server = HttpServer.create(new InetSocketAddress(port), 0);
+
+		// initialise the HTTPS server
+		try {
+			SSLContext sslContext = SSLContext.getInstance("TLS");
+
+			// initialise the keystore
+			char[] password = "miapasswd".toCharArray();
+			KeyStore ks = KeyStore.getInstance("JKS");
+			FileInputStream fis = new FileInputStream("../lig.keystore");
+			ks.load(fis, password);
+
+			// setup the key manager factory
+			KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509");
+			kmf.init(ks, password);
+
+			// setup the trust manager factory
+			TrustManagerFactory tmf = TrustManagerFactory.getInstance("SunX509");
+			tmf.init(ks);
+
+			// setup the HTTPS context and parameters
+			sslContext.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null);
+			server.setHttpsConfigurator(new HttpsConfigurator(sslContext) {
+				@Override
+				public void configure(HttpsParameters params) {
+					try {
+						// initialise the SSL context
+						SSLContext context = getSSLContext();
+						SSLEngine engine = context.createSSLEngine();
+						params.setNeedClientAuth(false);
+						params.setCipherSuites(engine.getEnabledCipherSuites());
+						params.setProtocols(engine.getEnabledProtocols());
+
+						// Set the SSL parameters
+						SSLParameters sslParameters = context.getSupportedSSLParameters();
+						params.setSSLParameters(sslParameters);
+
+					} catch (Exception ex) {
+						System.out.println("Failed to create HTTPS port");
+						ex.printStackTrace();
+					}
+				}
+			});
+
+			// chiamata per popolare moduli
+
+			URL url = new URL("https://gitlab.di.unipmn.it/alfredo/iotlabgw.edu-al.unipmn.it/-/raw/main/index.json");
+			HttpURLConnection con = (HttpURLConnection) url.openConnection();
+
+			Helper.setConnectionSettings(con, "GET");
+
+			// leggo risposta
+			int status = con.getResponseCode();
+			// controllare ToDo
+			String content = Helper.getResponseFromConnection(con);
+			con.disconnect();
+
+			// manipolazione per ottenere i campi dei moduli
+			riempiModuli(content);
+
+			server.setExecutor(threadPoolExecutor);
+
+			// API del server
+
+			server.createContext("/install/", new InstallHandler());
+			server.createContext("/start/", new StartHandler());
+			server.createContext("/stop/", new StopHandler());
+			server.createContext("/delete/", new DeleteHandler());
+			server.createContext("/secured/domains/", new TokenHandler());
+			server.createContext("/secured/services", new ServicesHandler());
+			server.createContext("/secured/priviledges", new PriviledgesHandler());
+
+			server.start();
+			System.out.println("Domain in ascolto su " + Helper.getSelfURL());
+
+		} catch (Exception e) {
+			System.out.println("Failed to create HTTPS server on port " + port + Helper.getSelfURL());
+			e.printStackTrace();
+		}
+
 	}
-	
+
 	private static void riempiModuli(String content) throws JSONException {
-		
-		JSONObject obj=new JSONObject(content);
+
+		JSONObject obj = new JSONObject(content);
 		JSONArray jr = obj.getJSONArray("response");
-		String []s1=new String[jr.length()];
+		String[] s1 = new String[jr.length()];
 
-		for(int i=0;i<jr.length();i++) {
-			s1[i]=jr.getString(i);
+		for (int i = 0; i < jr.length(); i++) {
+			s1[i] = jr.getString(i);
 		}
-		for(int i=0;i<s1.length;i++) {
-			String remZip=s1[i].substring(0, s1[i].length()-4);
-			String[] curr=remZip.split("-");
-			for(int j=0;j<curr.length;j++) {
-				if(curr.length>1) {
-					String a=curr[0];
-					String b=curr[1];
+		for (int i = 0; i < s1.length; i++) {
+			String remZip = s1[i].substring(0, s1[i].length() - 4);
+			String[] curr = remZip.split("-");
+			for (int j = 0; j < curr.length; j++) {
+				if (curr.length > 1) {
+					String a = curr[0];
+					String b = curr[1];
 					try {
-						//inserimento modulo non arduino
+						// inserimento modulo non arduino
 						DBC.fillModules(a, b, s1[i]);
 					} catch (SQLException | JSONException e) {
 						e.printStackTrace();
 					}
-				}
-				else {
-					String a=curr[0];
+				} else {
+					String a = curr[0];
 					try {
-						//inserimento modulo arduino
-						DBC.fillModules(a,"Arduino1", s1[i]);
+						// inserimento modulo arduino
+						DBC.fillModules(a, "Arduino1", s1[i]);
 					} catch (SQLException | JSONException e) {
 						e.printStackTrace();
 					}
@@ -91,5 +154,4 @@ public class Domain {
 			}
 		}
 	}
-
-}
+}
\ No newline at end of file
diff --git a/domainManager/Domain/src/code/Helper.java b/domainManager/Domain/src/code/Helper.java
index 6f05eacfd8fe6004607840d3d358ba1042ee187e..9862a8e30d92c41527c07bba0bc0e48ea97ef3b3 100644
--- a/domainManager/Domain/src/code/Helper.java
+++ b/domainManager/Domain/src/code/Helper.java
@@ -26,7 +26,7 @@ public class Helper {
 	private static String keycloakRealm = "test00";
 	private static String keycloakURL = "http://localhost:8080/";
 	private static String cloudappURL = "http://localhost:3002/";
-	private static String selfURL = "http://localhost:3001";
+	private static String selfURL = "https://localhost:3001";
 
 	public static void sendCors(HttpExchange exchange, int stato, String response) throws IOException {
 		Headers headers = exchange.getResponseHeaders();