Как использовать FIDO2 с Discourse за обратным прокси?

Кто-нибудь уже разобрался, как использовать FIDO2 с Discourse за обратным прокси? У меня возникает проблема при использовании шаблона web.socketed.template.yml с форумом, расположенным за Cloudflare Tunnel.

Ни Yubikey 2FA, ни новые входы с помощью Passkey у меня не работают.

Это на среде разработки? Возможно, вам потребуется временно переопределить этот фрагмент:

Также, скорее всего, полезно будет использовать флаг --forward-host при запуске сервера, например: bin/ember-cli -u --forward-host.

Нет, это установка в производственной среде.

Какие сообщения об ошибках вы получаете?

Какой полный URL запроса, который не удался, /auth.json?

Ах, нет: /session/passkey/auth.json

Хорошо, значит ваш сервер считает, что он работает не на том хостнейме, который запрашивает браузер. Процедура генерации ключа безопасности или passkey должна гарантировать, что хостнейм браузера совпадает с хостнеймом сервера (ключи генерируются для каждого хостнейма отдельно).

Можете ли вы войти в консоль Rails и проверить, что выводит команда Discourse.current_hostname? Если вывод не совпадает с URL, по которому вы обращаетесь к сайту, то проблема именно в этом.

Обратите внимание, это также может быть проблемой http против https. Я вижу, что логотип ищет URL-адрес в формате http:// на вашем сайте.

Discourse.current_hostname совпадает с URL, по которому я обращаюсь к сайту. Можно ли посмотреть, какой хост-нейм, по мнению Discourse, запрашивает мой браузер?

Что вы получите для Discourse.base_url в консоли?

Ага, он действительно установлен на URL http:// (с правильным именем хоста). Я использую настройку, описанную здесь, чтобы сделать Discourse доступным через Cloudflare Tunnel:

О, кажется, я понял. Включение настройки force https в Discourse, похоже, исправило проблему. Не совсем понятно, почему она была отключена. Мне кажется, в конфигурации по умолчанию это не было необходимо до добавления ещё одного обратного прокси перед ним. Спасибо за помощь!