Смешанный контент: страница по адресу '<URL>' была загружена через HTTPS, но запросила небезопасный шрифт '<URL>'. Этот запрос был заблокирован; контент должен обслуживаться через HTTPS
И 40 запросов к шрифтам из gem discourse-fonts. Это свежая установка, где Postgres и Redis работают на отдельном сервере в локальной сети, соединение осуществляется через сокет, но для внешнего доступа предоставляется через HTTPS. Существуют похожиетемы, но я не нашёл чёткого ответа. Проверка CSS указывает на wizard.scss (с исходной картой). Есть какие-либо идеи?
Скорее всего, нет. Где я могу это настроить? И почему это вообще должно быть необходимо, если CSS может запрашивать статические ресурсы по HTTPS или использовать относительные ссылки?
Кстати — на внешнем веб-сервере у меня уже настроен типичный редирект 301.
Ну, мне тоже. Я ничего не изменял. Просто обычная команда launcher build app. Эти URL-адреса, похоже, находятся в обработанном CSS, который я, очевидно, не трогал (как и scss) ни в каком виде. В файле app.yml я тоже ничего связанного с https не нашёл, так что… не знаю. Настройка force_https, кажется, обходит эту проблему.
Это зависит от того, как мы определяем «необходимость». На данный момент может потребоваться обходное решение реальной проблемы, а именно того, что скомпилированные CSS-файлы явно ссылаются на статические ресурсы, используя схему http. Но, на мой взгляд, в долгосрочной перспективе это не должно быть необходимо.
Необходимо в том смысле, что это назначение FORCE_HTTPS — именно так вы сообщаете Discourse, что он обслуживается в защищённом режиме, и просите его пересоздать ссылки соответствующим образом.
В этом случае, если вы включите force_https, то при обращении к домену, на котором не установлен сертификат, все URL ресурсов вызовут ошибку R_SSL_PROTOCOL_ERROR. Чтобы избежать этого, установите сертификат для данного домена, чтобы решить проблему с протоколом SSL.
Если же вы установите Discourse с раскомментированными выше шаблонами, то URL ресурсов сайта будет использовать HTTPS, как и базовый URL сайта. Кроме того, опция force_https станет невидимой в интерфейсе администратора.
Как упоминалось в оригинальном посте, в моём случае сертификат и всё остальное корректны и действительны, но все подключения к внешнему миру обрабатываются обратным прокси-сервером (nginx, естественно ;-), в то время как подключение к Discourse осуществляется через unix-сокет. Это означает, что у меня используется templates/web.socketed.template.yml
вместо любого из упомянутых вами. Тем не менее, это не должно приводить к тому, что статические URL будут содержать жёстко заданную схему http:.