From e9eadc22787b5313c6486bd716e1ec82447735ea Mon Sep 17 00:00:00 2001 From: Yannik Schmidt Date: Fri, 9 Dec 2022 23:39:06 +0100 Subject: [PATCH] feat: add ssl termination switch --- vm.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/vm.py b/vm.py index 0ff17c9..269e17f 100644 --- a/vm.py +++ b/vm.py @@ -16,7 +16,7 @@ listen {name} HA_PROXY_TEMPLATE_SNI = ''' frontend {subdomain}.{basedomain} bind 0.0.0.0:80 - bind 0.0.0.0:443 ssl + bind 0.0.0.0:443 {ssl} http-request redirect scheme https unless {{ ssl_fc }} default_backend {name} @@ -32,6 +32,7 @@ class VM: self.hostname = args.get("hostname") self.subdomains = args.get("subdomains") self.ports = args.get("ports") + self.terminateSSL = args.get("terminate-ssl") self.network = args.get("network") or "default" self.lease = self._get_lease_for_hostname() self.ip = self.lease.get("ipaddr") @@ -65,8 +66,14 @@ class VM: # https components # for subdomain in self.subdomains: compositeName = "-".join((self.hostname, subdomain.replace(".","-"))) + + # check ssl termination # + ssl = "" + if self.terminateSSL: + ssl = "ssl" + component = HA_PROXY_TEMPLATE_SNI.format(name=compositeName, basedomain=BASE_DOMAIN, - ip=self.ip, subdomain=subdomain) + ip=self.ip, subdomain=subdomain, ssl=ssl) components.append(component) return components