Content Security Policy: as configurações da página bloquearam o carregamento de um recurso ("script-src")

Olá, configurei o Discourse via Docker, mas o erro mencionado no título só aparece.

Qual método de instalação você usou e o que você configurou além do processo de instalação principal?

1 curtida

Eu já configurei as imagens individualmente e via docker-compose! No entanto, o erro permanece!

De que outra forma eu poderia ter configurado algo?

Receio que esta não seja informação suficiente para que as pessoas possam oferecer conselhos. Você seguiu o guia de instalação padrão?

Se pudesse incluir alguns detalhes sobre a sua configuração, exatamente como instalou o Discourse e qualquer outra coisa que possa ter feito, as pessoas poderão oferecer algumas ideias. :+1:

2 curtidas

Se você usou docker-compose, então não é uma instalação padrão. Talvez você tenha usado o bitnami (que não é suportado aqui)? Se você conseguir acessar o admin/configurações, talvez consiga adicionar qualquer domínio que qualquer coisa esteja tentando referenciar se você pesquisar nas configurações por “content security”.

Por que isso é forçado nas portas 80 e 443?

@pfaffman

Posso mudar isso?

Eu não sei. Você claramente não tem uma instalação padrão e não explicou como instalou.

Eu não sei o que está forçando o quê na porta 80 e 443.

Se você quer uma boa ajuda, você deve usar uma instalação padrão. Se você quer alguma ajuda, você precisará dizer mais sobre como você instalou.

Bem, eu uso a instalação padrão, que força as portas 80 e 443.

Então você não usou o docker-compose?

Sim, a instalação padrão requer as portas 80 e 443 e ativa o https e o force_https. Você não deveria ter o problema que descreve se fez uma instalação padrão.

Você executou discourse-setup para instalar?

O problema é que quero executar o Discourse em outras portas e incluí-lo no meu Apache2 via proxy reverso…

Talvez se você disser como instalou, alguém mais poderá ajudá-lo. Talvez você queira Configurar o Discourse em um servidor com sites Apache existentes.

Eu já disse! Sobre a instalação padrão!!!

Claro que pode. Você deve expor, por exemplo, - "83:80" no app.yml, ou qualquer porta que seu proxy reverso use para enviar tráfego para o backend. Ou você pode usar websocket.

Você quer usar um proxy reverso que não é uma instalação padrão.

Eu fiz isso, mas o site não está acessível

Então suas configurações estão erradas. O que é um problema é quase impossível adivinhar. Não use CSP, esse seria o primeiro passo. Mas ambos, Apache2 e Discourse, estão no mesmo servidor? Sua configuração do Apache2 está correta? Etc., etc.

Novamente, como dito — você não está usando a instalação padrão.

Não consigo usar a instalação padrão! Desculpe, mas o que há de tão difícil de entender nisso? Já tenho o Apache2 rodando e não vejo sentido em desligá-lo só porque o Discourse não acha que ele é flexível o suficiente para usar outras portas.

Esse é o problema com tudo isso

Minha Conf do Apache2:

<VirtualHost *:80>
    ServerName <domain>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    RewriteEngine on
    RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</VirtualHost>

<VirtualHost *:443>
    ServerName <domain>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    SSLEngine On
    SSLCertificateFile    /etc/letsencrypt/live/<domain>/cert.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/<domain>/privkey.pem
    SSLCertificateChainFile /etc/letsencrypt/live/<domain>/fullchain.pem

    ProxyPass / http://127.0.0.1:90/
    ProxyPassReverse / http://127.0.0.1:90/
</VirtualHost>

app.yml:

expose:
  - "90:80"   # http
  - "100:443" # https

Talvez não seja tão difícil quanto entender que você só recebe suporte da equipe para instalações padrão. É por isso que você tem que esperar que alguém de nós, membros comuns, possa te ajudar.

E como você não diz nada, é uma tarefa um pouco difícil. Não podemos adivinhar se sua configuração está correta ou se você direcionou para a porta certa em app.yml. Não sabemos absolutamente nada sobre sua configuração.

Claro que é. Usar um proxy reverso na frente do Discourse é bastante trivial — fora do docker, de qualquer forma. Você só precisa expor as portas certas ou usar websocket, se esses dois estiverem no mesmo servidor.

Você fez isso? Eu não sei e minhas cartas não me disseram :wink:

E novamente — se CSP for um problema, não o use até descobrir o que está lutando contra.

1 curtida