diff --git a/.gitignore b/.gitignore
index 861db796b3ae4ae0c2e53c823d05f43ca3ae4c1e..3c98739db35a846ed127f542ec836846b97d4fb0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -42,3 +42,5 @@ proguard/
 *.ear%
 
 .DS_Store
+/websocketClient/src/main/resources/localhost.der
+/websocketClient/src/main/resources/mycert-pub.jks
diff --git a/README.md b/README.md
index 4935b3ed090a4a651601537e02300697a8e38a92..772f67712697bfde79b9ce1587a61596418ed39f 100644
--- a/README.md
+++ b/README.md
@@ -14,8 +14,9 @@
       http://localhost:8080/restApp/sample/persons
    6. curl http://localhost:8080/restApp-1.0-SNAPSHOT/resources/sample/persons/843c8236-6c6b-450e-9aa3-211a9b897403
    7. curl -H "Accept: text/xml" http://localhost:8080/restApp-1.0-SNAPSHOT/resources/sample/persons
+
 ## Import "real" certificate
 
-  openssl x509 -outform der -in localhost.pem -out localhost.der
+  openssl s_client -showcerts -servername localhost -connect localhost:8181 </dev/null | openssl x509 -outform DER > localhost.der
   keytool -import -noprompt -trustcacerts -storepass storepass -alias localhost -keystore mycert-pub.jks -file localhost.der
 
diff --git a/docker-compose.yml b/docker-compose.yml
index 096bec6825d66fd01b7ab16c76be6c20018fcfcf..8f7e82db441f24e457f8056f36092cf17753211f 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -23,6 +23,13 @@ services:
         H2_OPTIONS: '-ifNotExists -webAllowOthers -tcpAllowOthers -pgAllowOthers -ifNotExists'
     volumes:
       - h2data:/h2-data
-
+  reverse-proxy:
+    environment:
+      - NGINX_HOST=localhost
+    build: docker/nginx
+    volumes:
+      - ./docker/nginx/nginx.conf:/etc/nginx/nginx.conf
+    ports:
+      - "8888:443"
 volumes:
   h2data:
\ No newline at end of file
diff --git a/docker/nginx/Dockerfile b/docker/nginx/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..656ee95b24dae039519089b0341c0e590b31346f
--- /dev/null
+++ b/docker/nginx/Dockerfile
@@ -0,0 +1,9 @@
+FROM nginx:1.20.2-alpine
+RUN apk add openssl
+RUN openssl req -x509 -nodes \
+    -days 365 \
+    -subj "/C=CA/ST=QC/O=Company, Inc./CN=localhost" \
+    -addext "subjectAltName=DNS:localhost" \
+    -newkey rsa:2048 \
+    -keyout /etc/ssl/private/nginx-selfsigned.key \
+    -out /etc/ssl/certs/nginx-selfsigned.crt;
\ No newline at end of file
diff --git a/docker/nginx/nginx.conf b/docker/nginx/nginx.conf
new file mode 100644
index 0000000000000000000000000000000000000000..c54e65465079ee1d7f16a3c4034dc3cd6d933077
--- /dev/null
+++ b/docker/nginx/nginx.conf
@@ -0,0 +1,24 @@
+events {
+
+}
+
+http {
+  server {
+    listen 80;
+
+    listen 443 ssl;
+    ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt;
+    ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key;
+
+    location /wsapp/ {
+        proxy_pass http://jakartaEE:8686;
+        proxy_http_version 1.1;
+        proxy_set_header Upgrade $http_upgrade;
+        proxy_set_header Connection "Upgrade";
+    }
+
+    location / {
+      proxy_pass http://jakartaEE:8080;
+    }
+  }
+}
\ No newline at end of file
diff --git a/jee/wsApp/src/main/java/fr/univtln/bruno/samples/jee91/ws/WSServer.java b/jee/wsApp/src/main/java/fr/univtln/bruno/samples/jee91/ws/WSServer.java
index eacbdf6085d1d708af0a5e9b48bcf2aca643c092..bea8ec0223a929f9a865d11ac5f56bedc870ddda 100644
--- a/jee/wsApp/src/main/java/fr/univtln/bruno/samples/jee91/ws/WSServer.java
+++ b/jee/wsApp/src/main/java/fr/univtln/bruno/samples/jee91/ws/WSServer.java
@@ -20,10 +20,11 @@ import java.io.IOException;
 @Log
 public class WSServer {
 
-   @Inject
+    @Inject
     @SpokenLanguage(SpokenLanguage.Language.ENGLISH)
     Hello hello;
 
+
     @Inject
     MainDAO dao1;
 
@@ -36,8 +37,8 @@ public class WSServer {
     }
 
     @OnMessage
-    public void onMessage(Session session,
-                          String message) throws IOException {
+    public void onMessage(String message, Session session
+    ) throws IOException {
         session.getBasicRemote().sendText("Echo :" + message);
     }
 }
diff --git a/websocketClient/src/main/java/fr/univtln/bruno/samples/jee91/wsclient/WsClient.java b/websocketClient/src/main/java/fr/univtln/bruno/samples/jee91/wsclient/WsClient.java
index 3ed86072a8b712266064df3c3a186a1b4103f61f..30201cc79d97e9b44afd2f8ca8a5017afbf18396 100644
--- a/websocketClient/src/main/java/fr/univtln/bruno/samples/jee91/wsclient/WsClient.java
+++ b/websocketClient/src/main/java/fr/univtln/bruno/samples/jee91/wsclient/WsClient.java
@@ -41,7 +41,7 @@ public class WsClient {
     public static void main(String[] args) {
         try {
 
-            final WsClient clientEndPoint = new WsClient(new URI("ws://localhost:8686/wsApp/hellows"));
+            final WsClient clientEndPoint = new WsClient(new URI("wss://localhost:8181/wsApp/hellows"));
             clientEndPoint.sendMessage("Hello 1 !");
             Thread.sleep(5000);
             clientEndPoint.sendMessage("Hello 2 !");
diff --git a/websocketClient/src/main/resources/META-INF/log4j.properties b/websocketClient/src/main/resources/log4j.properties
similarity index 100%
rename from websocketClient/src/main/resources/META-INF/log4j.properties
rename to websocketClient/src/main/resources/log4j.properties
diff --git a/websocketClient/src/main/resources/updateKeystore.sh b/websocketClient/src/main/resources/updateKeystore.sh
new file mode 100644
index 0000000000000000000000000000000000000000..afa03d8055a0d3c40bc588b713b61d6685b42a95
--- /dev/null
+++ b/websocketClient/src/main/resources/updateKeystore.sh
@@ -0,0 +1,3 @@
+#!/bin/bash
+openssl s_client -showcerts -servername localhost -connect localhost:8181 </dev/null | openssl x509 -outform DER > localhost.der
+keytool -import -noprompt -trustcacerts -storepass storepass -alias localhost -keystore mycert-pub.jks -file localhost.der