Bem, depois de tantas tentativas malsucedidas, finalmente descobri como fazer um login válido com force_https=true.
No ambiente Docker, modifiquei o arquivo /etc/nginx/conf.d/discourse.conf da seguinte forma:
…
location @discourse {
limit_conn connperip 20;
limit_req zone=flood burst=12 nodelay;
limit_req zone=bot burst=100 nodelay;
proxy_set_header Host $http_host;
proxy_set_header X-Request-Start “t=${msec}”;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https; # $thescheme; ← O que eu modifiquei
proxy_pass http://discourse;
}
…
E isso apenas funciona nesta seção, pelo menos no meu ambiente.
Agora funciona perfeitamente!