Наконец-то решение найдено. Необходимо установить заголовок X-Forwarded-Proto, который используется для определения протокола (HTTP или HTTPS), по которому клиент подключился к вашему прокси-серверу или балансировщику нагрузки.
Поскольку я использую HAProxy в качестве прокси-сервера, мне пришлось добавить эту строку в конфигурацию HAProxy:
http-request set-header X-Forwarded-Proto https if { ssl_fc }
Теперь вход в систему работает корректно, даже если включена опция «принудительный HTTPS».