Deploy Xill4 with HTTPS
It is possible to deploy Xill4 with HTTPS. Xill4 has no support for TLS, so a reverse proxy has to be used. Deploying Xill4 with HTTPS has been tested with Traefik and Nginx. The following guide is an example of how to setup Nginx as a reverse proxy in order to serve Xill4 over HTTPS.
You will need a valid SSL certificate for your host (.crt and .key file). Once a certificate is obtained, follow these steps:
- Make sure Xill4 is running.
 - Configure 
nginx.conf. An example file is given below. Apply the following changes in the example configuration:- Update the 
___REPLACE_WITH_HOSTNAME___values. It should reflect the hostname. Example:xill4.yourCompany.com. - Update the 
___REPLACE_WITH_CERT_PATH___values to the location of your.crtfile. - Update the 
___REPLACE_WITH_KEY_PATH___values to the location of your.keyfile. - Update the 
___REPLACE_WITH_LOG_PATH___values to the location where your like to store the log files. It is recommended to store them in a subdirectory of the Xill4 logs folder%pathToXill4%/logs/nginx. 
 - Update the 
 - Start Nginx.
 
note
If either Nginx or Xill4 is deployed with Docker, proxy_pass http://localhost:8000 will not work and will have to be changed.
Example configuration file for Nginx:
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include            mime.types;
    default_type       application/octet-stream;
    sendfile           on;
    keepalive_timeout  65;
    proxy_http_version 1.1;
    server {
        listen        80;
        listen    443 ssl;
        server_name ___REPLACE_WITH_HOSTNAME___;
        charset     utf-8;
        # SSL configuration
        ssl_certificate ___REPLACE_WITH_CERT_PATH___.crt;
        ssl_certificate_key ___REPLACE_WITH_KEY_PATH___.key;
        ssl_protocols TLSv1.2 TLSv1.1 TLSv1;
        access_log ___REPLACE_WITH_LOG_PATH___/xill4_access.log;
        error_log ___REPLACE_WITH_LOG_PATH___/xill4_error.log;
        location / {
            proxy_pass         http://localhost:8000;
            proxy_http_version 1.1;
            proxy_set_header   Upgrade $http_upgrade;
            proxy_set_header   Connection "upgrade";
            proxy_set_header   Host $host;
            proxy_cache_bypass $http_upgrade;
            proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header   X-Forwarded-Proto $scheme;
            proxy_set_header Upgrade         $http_upgrade;
            proxy_set_header Connection      "upgrade";
            # max 15 minutes keep-alive
            proxy_read_timeout  600s;
            proxy_redirect     off;
            break;
        }
    }
}
note
Only absolute paths and forward slashes are supported.