Com o Apache, é uma questão simples:
ProxyPass / https://example.com/
ProxyPassReverse / https://example.com/
ProxyPreserveHost off # it's the default anyway
O truque é substituir o Host header, para que o backend example.com receba Host: example.com como esperado. É um comportamento padrão do Apache. Por exemplo, haproxy não faz isso, deixa Host: bad.com por padrão.