URL CDN необходимо добавить в src скрипта CSP

У меня настроен сайт с переменными окружения (ENV) следующим образом:


  DISCOURSE_FORCE_HTTPS: true
  DISCOURSE_S3_ACCESS_KEY_ID: 'KEY'
  DISCOURSE_S3_SECRET_ACCESS_KEY: 'SECRET'
  DISCOURSE_BACKUP_LOCATION: 's3'
  DISCOURSE_ENABLE_S3_UPLOADS: true
  DISCOURSE_ENABLE_S3_INVENTORY: false
  DISCOURSE_S3_BACKUP_BUCKET: 'mybucket/backups'
  DISCOURSE_S3_UPLOAD_BUCKET: 'mybucket'
  DISCOURSE_S3_CDN_URL: 'https://mybuckets3.cdn.literatehosting.com'
  DISCOURSE_S3_REGION: 'us-west-1'
  DISCOURSE_BACKUP_WITH_UPLOADS: 'false'
  DISCOURSE_CDN_URL: 'https://mybucket.cdn.literatehosting.com'

Всё работало отлично, пока я не добавил s3 cdn url. После добавления CDN для S3 мой браузер начал отклонять запросы к обычному (не S3) CDN. Я добавил URL CDN в SiteSetting.content_security_policy_script_src=, и тогда всё снова заработало. Это похоже на баг, не так ли? Я просто перезапустил сервис после изменения этих переменных окружения, не делая пересборку (rebuild). Нужно ли мне выполнять rake assets:precompile при изменении настроек CDN?

Хм, всё должно работать корректно. CSP должна разрешать доступ к конкретным папкам на S3 и к CDN, откуда загружаются скрипты.

Какой CSP-заголовок отправлял/отправляет Discourse вместе со страницей? Это установка в подпапке?

Думаю, я это понимаю. Находится ли этот CSP в статических ресурсах, которые создаёт команда rake assets:precompile? (Но тогда почему добавление его в настройки должно это исправить.)

Боюсь, я не совсем знаю каноничный способ получить ответ на этот вопрос.

Не подпапка. Установка довольно стандартная, хотя перед ней работает обратный прокси-сервер Traefik.

curl -I https://discourse.example.com/ или инспектор Chrome, и получите содержимое заголовка Content-Security-Policy.