Monica CRM – Fix mixed content (HTTP assets on HTTPS)
InstallationskontextInstallation context
Monica CRM wurdewas mithilfeinstalled desusing the offiziellenofficial Proxmox VE Community ScriptsScript.
This Das bedeutet:means:
- Monica
läuftrunsininsideeinema ProxmoxLXC-ContainerLXC container - PHP, Apache2,
undanddietheVerzeichnisstrukturdirectoryfolgenstructuredenfollow theDefaultscommunitydesscriptCommunity-Scriptsdefaults KonfigurationsänderungenConfiguration changes (z.suchB.as.env)werdenare madeinnerhalbinsidedesthe LXCvorgenommen- HTTPS
wirdistypischerweisetypically terminatedaußerhalboutsidedestheContainerscontainerterminiert,viaz.aB.reverseüber einen Reverse Proxyproxy (e.g. Nginx ProxyManager o. Ä.)Manager)
AufgrundBecause diesesof Setupsthis sindsetup, vertrauenswürdigetrusted Proxy-Headerproxy undheaders korrekteand HTTPS-ErkennungHTTPS zwingenddetection erforderlichare mandatory, sonst gehtotherwise Monica/Laravel fälschlicherweisewill vonincorrectly assume HTTP ausand undgenerate generiertmixed-content Mixed-Content-URLs.
Problem
BeimWhen Zugriff aufaccessing Monica übervia HTTPSHTTPS, zeigtthe derbrowser Browsermay Warnungenshow wie:warnings like:
- CSS
oderorBilderimageswerdenareüberloaded viahttp://geladen - Assets
werdenareblockiertblockedoderornuronlyteilweisepartiallygeladenloaded - DevTools
meldetshows„Mixed“mixedContent“content”-Warnungenwarnings
Beispiel:Example:
DieThe Seitepage unterat https://monica.example.net hatrequested unsichereninsecure Inhaltcontent vonfrom http://monica.example.net/…
angefordert
UrsacheCause
Monica (Laravel-basiert)based) glaubtstill weiterhin,thinks aufit is running on HTTP, zueven laufen,though obwohlit sieis überaccessed via HTTPS viathrough Reversea Proxyreverse proxy erreicht wird..
TypischeTypical Gründe:reasons:
APP_URListisimmerstillnochsetauftohttp://gesetztReverse-Proxy-HeaderReversewerdenproxynichtheadersvertrautare not trustedLaravel-Konfigurations-CacheLaravelwurdeconfigurationnichtcachegeleertwas not cleared
LösungSolution (empfohlenerecommended Reihenfolge)order)
Führe dieFollow Schrittesteps derin Reihe nachorder ausand undtest. testeBest jeweils.done Amafter bestena direktfresh nachnew einer frischen Installation durchführen.install.
OftIt reichtcould schonbe Schrittenough 1+2.to Fallsjust nicht,set weiter mit 3 ff.
1. Korrektethe APP_URL setzen
and the APP_ENV. But maybe it doesn't, then you can also try steps 2++.
1. Set correct APP_URL
DateiEdit Monica’s .env von Monica bearbeiten:file:
APP_URL=https://monica.example.net
WichtigeImportant Hinweise:notes:
DieUse theendgültigefinalöffentlichepublic URLverwendenKeinNoabschließendertrailingSlashslashMussMustexaktmatchmitthederreverseReverse-Proxy-Domainproxyübereinstimmendomain
2. Set APP_ENV aufto production setzen
APP_ENV productionInEdit derMonica's .env-Datei vonfile and change from local aufto production ändern::
# ZweiTwo Möglichkeiten:choices: local|production. Use local =if Entwicklerversion,you want to install Monica as a
# development version. Use production = alles andere.otherwise.
APP_ENV=production
3. Reverse-Proxy-HeaderTrust vertrauenreverse proxy headers (sehrvery wichtig)
important)
FallsIf diethe obigenabove Schrittedoes nichtnot helfen,work, inadd this to .env ergänzen::
TRUSTED_PROXIES=*
WarumWhy dasthis entscheidend ist:matters:
- Monica
stehtishinterbehindeinemaReversereverseProxyproxy - HTTPS
wirdisamterminatedProxyatterminiertthe proxy Intern erhältApachenurreceives HTTP internally- Without trusted headers, Laravel assumes HTTP
Ohne vertrauenswürdige Header geht Laravel von HTTP aus
4. AlleClear Cachesand löschenrebuild undall neu aufbauencaches (Pflicht!)
mandatory)
ImFrom Installationsverzeichnis vonthe Monica ausführen:installation directory:
php artisan optimize:clear
php artisan config:clear
php artisan cache:clear
php artisan route:clear
php artisan view:clear
php artisan config:cache
Do Diesennot Schrittskip niemalsthis überspringen!
step.
Laravel cachedcaches URLs sehr aggressiv.aggressively.
5. DiensteRestart neuservices
starten
LXC /
Bare-Metalbare metal (Apache2)
systemctl restart apache2
Docker / Docker Compose
(falls du später wechselst)
docker compose restart
6. Nginx Proxy Manager (häufigstescommon Setup)setup)
StandardmäßigEnabledaktiviertby default- Do
Host-HeadernotnichtoverrideüberschreibenHostheaders - Do
KeinnotForce-force HTTP upstream BeiRemoveUnsicherheit:custombenutzerdefinierteproxyProxy-Headerheadersentfernenif unsure
Apache benötigtdoes keinenot spezielleneed Konfiguration,special solangeconfiguration diefor Headerthis korrektas weitergeleitetlong werden.as the headers are passed correctly.
7. ImVerify Browserin überprüfen
the browser
SeiteOpenüberthe site with HTTPSöffnen- Hard
Refresh durchführenrefresh (Cmd + Shift + R) - Open DevTools →
Network-Tab öffnenNetwork AlleAllAssetsassetsmüssenmustüberload viahttps://geladen werden
DirekterTest Test:directly:
https://monica.example.net/css/app-ltr.css
EsNo dürfenredirects keine Weiterleitungen aufto http:// mehrshould auftreten.occur.
ZusammenfassungSummary
UmTo Mixed-Content-Problemefix beimixed content issues in Monica hinterbehind einema Reversereverse Proxyproxy (Apache2-Setup)Apache2 zu beheben:setup):
- Set
APP_URLaufto HTTPSsetzen - Set
toAPP_ENV=APP_ENVproductionsetzen Proxy-HeaderTrustvertrauenproxy(TRUSTED_PROXIES=*)headers- Clear
AlleallLaravel-CachesLaravellöschen & neu cachencaches - Restart Apache
neuandstartenor(ggf. LXC rebooten)reboot.
DanachOnce liefertdone, Monica will correctly serve alleall Assetsassets korrekt überover HTTPS aus..