Set up a virtual ip under Firewall → Virtual IP's.

Create a wild card server cert for your domain.

Needs IP Alias, an address with /32 as we only need a single IP address in this case

Services → HAProxy (assuming it's been installed)

Create a backend for each service you want to put behind the proxy. We only need to edit HAProxy Backend Server Pool. Example settings

name: name 
Forwardto: Address+Port 
Address: 10.10.10.70 
Port: 9000 
Encrypt(SSL): no 
SSL Checks: no

Under front ends, create one for HTTP-80. Settings should be:

External Address:
Listen Address: The virtual IP you created 
Port: 80
Type: http / https(offloading)
Under Default backend, and only under Actions: 
Action: http-request-redirect 
rule: scheme https 
Under Advanced Settings 
Use "forwardfor" option: Checked

Create another backend for HTTP-443

External Address: 
Listen Address: The virtual IP you created 
Port: 80 
Type: http / https(offloading)

Under Default backend, access control lists and actions is where you specify the redirects

Create an Access Control List. For example:

name: portainer
Expression: Host Starts With
CS: no 
Not: no 
Value: portainer

Then under Actions:

Action: Use Backend 
Parameters: See below 
Condition ACL Names: portainer 
Use Backend: Portainer

Under advanced settings:

Use "forwardfor" option: Checked

Under SSL Offloading:

Certificate: Use the created wild card server cert
Add ACL for certificate CommonName. (host header matches the "CN" of the certificate): Checked
Add ACL for certificate Subject Alternative Names.: Checked

Under Settings:

Enable HAProxy: Checked 
Maximum Connections: 500 
Internal stats port : 444 
Max SSL Diffie-Hellman size: 2048

Should be good to go. One day I may even explain things better, but for now, these settings work for me.