Isso é comumente feito pelo próprio servidor da web. O servidor da Web ouviria solicitações HTTP e HTTPS. Usando a regra de reescrita, as solicitações HTTP seriam reescritas para solicitações HTTPS e enviadas de volta como um redirecionamento para o solicitante. Isso normalmente seria um redirecionamento 301 (movido permanentemente).
Você não pode usar o iptables para fazer os redirecionamentos necessários.
Alguns proxies podem ser capazes de fazer proxy do pedido de HTTP para HTTPS, mas isso quebraria a segurança fornecida pelo HTTPS.
Pode haver processos simples que só redirecionam que poderiam ser usados para fazer os redirecionamentos, mas não vejo nenhuma vantagem sobre ter o servidor da Web fazendo o redirecionamento.
Alguns servidores da Web podem ser configurados para tratar os sites HTTP e HTTPS como entidades separadas. A segurança pode ser aumentada ao não mapear nenhum conteúdo seguro no site HTTP, que deve estar apenas fazendo redirecionamentos.