Gateway tunnelling setup
This guide describes the steps necessary to setup the gateway tunnelling functionality which allows remote access to edge gateways using SISH
Edge Instance Setup
SSH keys
mkdir -p deployment/sish/pubkeys deployment/sish/client deployment/sish/keysssh-keygen -t ed25519 -b 4096-f clientmv client.pub deployment/sish/pubkeysmv client deployment/sish/client(this will be needed by the edge instances) - Optionally encrypt this file using gradle taskssh-keygen -t ed25519 -b 4096-f server_keymv server_key deployment/sish/keys
Docker envrionment variables
- Set Keycloak container environment variables:
KEYCLOAK_ISSUER_BASE_URI: https://${OR_HOSTNAME}/authKC_HOSTNAME:This must be blank or completely removed (i.e. do not set this environment variable)KC_HOSTNAME_STRICT: false
- Set manager environment variables:
OR_WEBSERVER_ALLOWED_ORIGINS: *OR_GATEWAY_TUNNEL_SSH_KEY_FILE=<PATH_TO_PUBLIC_SISH_KEY>(/deployment/sish/client/cert)
Central Instance Setup
- Set AWS_ROUTE53_ROLE on proxy container (this can be left as empty string to inherit from AWS EC2 instance provided the instance is using a cloudformation template that sets this value in
/etc/environment) - Set
DOMAINNAMESto include wildcard certificate e.g.*.example.openremote.app - Add wildcard DNS A/AAAA record(s) e.g.
*.example.openremote.app - Uncomment/add sish service in Docker Compose profile
- Set
SISH_HOSTandSISH_PORTon proxy container - Set TCP port range in sish service (to allow raw TCP tunnelling)
- Allow inbound access to port
2222and to the TCP port range exposed on the instance - Generate or select existing SSH private key and add this to the deployment image and set SISH variable:
--private-keys-directory