Acabei usando um proxy reverso. Nesse caso, o Traefik era exatamente o que eu precisava.
Eu fiz uma API simples que modifica o arquivo de configuração e tem alguns bons recursos, como solicitar certificados SSL na configuração
Abaixo está a configuração que acabei usando no caso de alguém precisar de algo semelhante.
InsecureSkipVerify = true
defaultEntryPoints = ["https"]
[entryPoints]
[entryPoints.https]
address = ":443"
[entryPoints.https.tls]
[acme]
dnsProvider = "dnsprovider"
email = "[email protected]"
storage = "acme.json"
entryPoint = "https"
acmeLogging = true
delayDontCheckDNS = 0
onHostRule = true
[frontends]
[frontends.frontend0]
backend = "backend0"
[frontends.frontend0.routes.main]
rule = "Host:din0.instance.mydomain.com"
[backends]
[backends.backend0]
[backends.backend0.servers.server1]
url = "wss://165.227.200.126"