Owen, did your assertion turn out to be true? Is a reverse proxy required to perform this redirection of jenkins requests from http (80,8080) to https (port 8443)?
I'm currently using iptables to forward 443 to 8443 to allow my users to not require a port in the URL, however, this does still require "https://" in the URL. So, like you (probably) I'd like to redirect http ports to jenkins default ssl/https port 8443. But I'm not sure if a simple port forward from 80/8080 to 8443 would work, or if it would break the ssl negotiation that needs to happen.
So far, my attempts to add these rules have not succeeded in redirecting http requests on port 80 to https requests on port 443.
I'm sure I'm missing something important here. In case someone is listening here is what my nat iptable looks like:
jenkins@jenkins-testing:~$ sudo iptables -nvL -t nat
Chain PREROUTING (policy ACCEPT 13 packets, 1810 bytes)
pkts bytes target prot opt in out source destination
7 364 REDIRECT tcp -- ens192 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 /* Ansible-generated. */ redir ports 8443 0 0 REDIRECT tcp -- ens192 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8080 /* Ansible-generated. */ redir ports 8443 2 104 REDIRECT tcp -- ens192 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 /* Ansible-generated. */ redir ports 8443
Chain INPUT (policy ACCEPT 20 packets, 1582 bytes)
pkts bytes target prot opt in out source destination
Chain POSTROUTING (policy ACCEPT 151 packets, 10870 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 151 packets, 10870 bytes)
pkts bytes target prot opt in out source destination
Chain DOCKER (2 references)
pkts bytes target prot opt in out source destination