Вход в Facebook был помечен как несоответствующий требованиям после перехода на систему сертификатов Let's Encrypt

Примерно с 30 сентября 2021 года (насколько я могу судить) мой сайт выдаёт ошибки сертификата:

Ваше соединение не является защищённым
Предупреждение о безопасности «NET::ERR_CERT_COMMON_NAME_INVALID».

Этот сервер не смог подтвердить, что он действительно www.nzarchitecture.net.nz; его сертификат безопасности выдан для nzarchitecture.net.nz. Это может быть вызвано неправильной конфигурацией или перехватом вашего соединения злоумышленником.

Эта проблема может быть связана с изменениями в Let’s Encrypt, внедрёнными в эту дату.
Проблема возникает при использовании URL https://www.nzarchitecture.net.nz, но не при использовании https://nzarchitecture.net.nz.

Проблема сохраняется даже после обновления до версии 2.8.0 beta 7 и полной пересборки.

Из-за появления этого сообщения об ошибке на главной странице сайт был помечен как не соответствующий требованиям Facebook, в результате чего вход через Facebook был отключён самой платформой Facebook.

Это проблема Facebook, которую им нужно исправить.

Сертификат абсолютно легитимен.

Это похоже на…
https://meta.discourse.org/t/configuring-google-login-for-discourse/15858/239

Дело в том, что даже я вижу эти ошибки, когда включаю ‘www’ в URL, который вставляю или ввожу в браузере. Таким образом, даже если реальной угрозы нет, пользователи получают тревожные предупреждения — независимо от проблемы с соответствием требованиям Facebook. Между тем Facebook отказывается рассматривать вопрос, пока ошибка не исчезнет.

В вашем файле конфигурации

/var/discourse/containers/app.yml

что указано в параметре DISCOURSE_HOSTNAME:?

Если ваш основной сайт находится на домене без www, вы должны зарегистрировать домен без www в системе Facebook. Смешивать их нельзя.

В файле app.yml показано

DISCOURSE_HOSTNAME: nzarchitecture.net.nz

Хорошо, я понимаю, что это имеет смысл — но с точки зрения DNS один является псевдонимом другого (по крайней мере, так я думал). И будет сложно объяснить обычному пользователю, что он не может использовать «www», особенно если ему нужно войти в систему, чтобы увидеть какое-либо предупреждение на этот счёт…

Это не совсем «алиас», а перенаправление. И вам нужно правильно настроить перенаправление, что включает наличие сертификата для места, где осуществляется перенаправление.

Например, наши партнёры из communiteq предоставляют такую услугу по адресу https://www.forcewww.com/

До недавнего времени это никогда не было проблемой — никаких предупреждений от Facebook и никаких предупреждений о сертификате, независимо от наличия или отсутствия www.

Есть ли способ получить стандартный бесплатный сертификат Let’s Encrypt, который будет покрывать оба варианта? Очень не хочется усложнять ситуацию дополнительными сертификатами для управления и лишними расходами.

В интернете много писем со ссылками на сайт, включающими www.

Под «местом, где размещено перенаправление», вы имеете в виду в данном случае DigitalOcean? (мой хостинг-провайдер, где также управляются настройки DNS)

Вы можете добавить одну или две дополнительные строки в ваш app.yml. Это сработало для меня, когда у меня возникли проблемы:

Спасибо — это выглядит многообещающе.

В моём случае, если https://nzarchitecture.net — это базовый домен, будут ли правильными следующие строки для добавления?

after_ssl:
- replace:
filename: “/etc/runit/1.d/letsencrypt”
from: /–keylength/
to: “-d www.nzarchitecture.net.nz --keylength”

И нужно ли мне пересобрать Discourse, чтобы это вступило в силу?

Содержимое верное, но в YAML-файле важен отступ, поэтому его нужно исправить:

  after_ssl:
    - replace:
        filename: "/etc/runit/1.d/letsencrypt"
        from: /--keylength/
        to: "-d www.nzarchitecture.net.nz --keylength"

Чтобы изменения вступили в силу, необходимо пересобрать проект.

Редактирование: На самом деле, похоже, что использование --keylength заменено на -k, поэтому вам потребуется следующее:
Извините, мой поиск на GitHub привёл меня к старому форку, и я этого не заметил. --keylength — это правильно.

Отлично! Большое спасибо за помощь @Simon_Manning и всем остальным — редирект через app.yml сработал просто замечательно.