Content Security Policy: Die Einstellungen der Seite haben das Laden einer Ressource blockiert ("script-src")

Hallo, ich habe Discourse über Docker eingerichtet, aber der im Titel genannte Fehler tritt nur auf.

Welche Installationsmethode haben Sie verwendet und was haben Sie außer dem Kerninstallationsprozess selbst konfiguriert?

1 „Gefällt mir“

Ich habe die Bilder einmal einzeln und über docker-compose eingerichtet! Der Fehler bleibt jedoch bestehen!

In welcher Weise sollte ich etwas anderes konfiguriert haben können?

Ich fürchte, das sind nicht genügend Informationen, damit die Leute Ratschläge geben können. Haben Sie die Standardinstallationsanleitung befolgt?

Wenn Sie einige Details zu Ihrer Einrichtung, genau wie Sie Discourse installiert haben und alles andere, was Sie möglicherweise getan haben, angeben könnten, können Ihnen die Leute vielleicht einige Einblicke geben. :+1:

2 „Gefällt mir“

Wenn Sie docker-compose verwendet haben, handelt es sich nicht um eine Standardinstallation. Haben Sie vielleicht Bitnami verwendet (was hier nicht unterstützt wird)? Wenn Sie auf die Admin-/Einstellungen zugreifen können, können Sie möglicherweise jede Domain hinzufügen, auf die sich das, worauf auch immer verwiesen wird, bezieht, wenn Sie in den Einstellungen nach „Content Security“ suchen.

Warum wird dies auf Port 80 und 443 erzwungen?

@pfaffman

Kann ich das ändern?

Ich weiß es nicht. Sie haben eindeutig keine Standardinstallation und haben nicht erklärt, wie Sie installiert haben.

Ich weiß nicht, was Port 80 und 443 erzwingt.

Wenn Sie gute Hilfe wünschen, sollten Sie eine Standardinstallation verwenden. Wenn Sie überhaupt Hilfe wünschen, müssen Sie mehr darüber sagen, wie Sie installiert haben.

Nun, ich verwende die Standardinstallation, die Port 80 und 443 erzwingt.

Sie haben also docker-compose nicht verwendet?

Ja, die Standardinstallation erfordert die Ports 80 und 443 und aktiviert https und force_https. Sie sollten nicht das Problem haben, das Sie beschreiben, wenn Sie eine Standardinstallation durchgeführt haben.

Haben Sie discourse-setup zur Installation ausgeführt?

Die Sache ist, ich möchte Discourse auf anderen Ports ausführen und es über einen Reverse-Proxy in meine Apache2 einbinden…

Vielleicht, wenn Sie sagen, wie Sie installiert haben, kann Ihnen jemand anderes helfen. Vielleicht möchten Sie Discourse auf einem Server mit vorhandenen Apache-Websites einrichten.

Ich habe es doch schon gesagt! Über die Standardinstallation!!!

Natürlich können Sie das. Sie sollten zum Beispiel - „83:80“ in app.yml oder welchen Port auch immer Ihr Reverse-Proxy verwendet, um Traffic an das Backend zu senden, freigeben. Oder Sie können Websockets verwenden.

Sie möchten einen Reverse-Proxy verwenden, der keine Standardinstallation ist.

Ich habe es getan, aber die Seite ist nicht erreichbar

Dann sind Ihre Einstellungen falsch. Was ein Problem ist, ist fast unmöglich zu erraten. Verwenden Sie kein CSP, das wäre der erste Schritt. Aber sind sowohl Apache2 als auch Discourse auf demselben Server? Ist Ihre Apache2-Konfiguration richtig? Etc., etc.

Wieder, wie gesagt – Sie verwenden keine Standardinstallation.

Ich kann die Standardinstallation nicht verwenden! Entschuldigen Sie, aber was ist daran so schwer zu verstehen? Ich habe bereits Apache2 laufen und sehe keinen Sinn darin, ihn herunterzufahren, nur weil Discourse es nicht für flexibel genug hält, andere Ports zu verwenden.

Das ist das Problem bei der ganzen Sache

Meine Apache2 Conf:

<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

Vielleicht nicht so schwer zu verstehen, dass Sie vom Team nur für Standardinstallationen Unterstützung erhalten. Deshalb müssen Sie hoffen, dass Ihnen jemand von uns, den normalen Mitgliedern, helfen kann.

Und weil Sie nichts sagen, ist es eine etwas schwierige Aufgabe. Wir können nicht erraten, ob Ihre Konfiguration richtig ist oder ob Sie im richtigen Port in app.yml angegeben haben. Wir wissen absolut nichts über Ihr Setup.

Natürlich ist es das. Einen Reverse-Proxy vor Discourse zu verwenden, ist ziemlich trivial – außerhalb von Docker jedenfalls. Sie müssen nur die richtigen Ports freigeben oder Websockets verwenden, wenn sich diese beiden auf demselben Server befinden.

Haben Sie das getan? Ich weiß es nicht und meine Karten haben es mir nicht verraten :wink:

Und noch einmal: Wenn CSP ein Problem ist, verwenden Sie es nicht, bis Sie herausgefunden haben, was sich dagegen wehrt.

1 „Gefällt mir“