Monica CRM – Fix mixed content (HTTP assets on HTTPS)
Installation contextInstallationskontext
Monica CRM waswurde installedmithilfe using thedes officialoffiziellen Proxmox VE Community ScriptScripts.
Thisinstalliert.
means:Das bedeutet:
- Monica
runsläuftinsideinaeinem ProxmoxLXC containerLXC-Container - PHP, Apache2
,andundthediedirectoryVerzeichnisstrukturstructurefolgenfollow thedencommunityDefaultsscriptdesdefaultsCommunity-Scripts Configuration changesKonfigurationsänderungen (suchz.asB..env)are madewerdeninsideinnerhalbthedes LXC vorgenommen- HTTPS
iswirdtypically terminatedtypischerweiseoutsideaußerhalbthedescontainerContainersviaterminiert,az.reverseB.proxyüber einen Reverse Proxy (e.g.Nginx ProxyManager)Manager o. Ä.)
BecauseAufgrund ofdieses thisSetups setup,sind trustedvertrauenswürdige proxyProxy-Header headersund andkorrekte HTTPSHTTPS-Erkennung detectionzwingend are mandatoryerforderlich, otherwisesonst geht Monica/Laravel willfälschlicherweise incorrectly assumevon HTTP andaus generateund mixed-contentgeneriert Mixed-Content-URLs.
Problem
WhenBeim accessingZugriff auf Monica viaüber HTTPS,HTTPS thezeigt browserder mayBrowser showWarnungen warnings like:wie:
- CSS
oroderimagesBilderarewerdenloaded viaüberhttp://geladen - Assets
arewerdenblockedblockiertoroderonlynurpartiallyteilweiseloadedgeladen - DevTools
showsmeldet“mixed„Mixedcontent”Content“warnings-Warnungen
Example:Beispiel:
TheDie pageSeite atunter https://monica.example.net requestedhat insecureunsicheren contentInhalt fromvon http://monica.example.net/… angefordert
CauseUrsache
Monica (Laravel-based)basiert) stillglaubt thinksweiterhin, it is running onauf HTTP, evenzu thoughlaufen, itobwohl issie accessed viaüber HTTPS throughvia aReverse reverseProxy proxy.erreicht wird.
TypicalTypische reasons:Gründe:
APP_URLisiststillimmersetnochtoaufhttp://gesetztReverseReverse-Proxy-Headerproxywerdenheadersnichtare not trustedvertrautLaravelLaravel-Konfigurations-Cacheconfigurationwurdecachenichtwas not clearedgeleert
SolutionLösung (recommendedempfohlene order)Reihenfolge)
FollowFühre die stepsSchritte inder orderReihe nach andaus test.und Bestteste donejeweils. afterAm abesten freshdirekt newnach install.einer frischen Installation durchführen.
ItOft couldreicht beschon enoughSchritt to1+2. justFalls setnicht, theweiter mit 3 ff.
1. Korrekte APP_URL and the APP_ENV. But maybe it doesn't, then you can also try steps 2++.
1. Set correct APP_URL
setzen
APP_URLEdit Monica’sDatei .env file:von Monica bearbeiten:
APP_URL=https://monica.example.net
ImportantWichtige notes:Hinweise:
Use theDiefinalendgültigepublicöffentliche URL verwenden- Kein abschließender Slash
NoMusstrailingexaktslashmit MustdermatchReverse-Proxy-Domainthe reverse proxy domainübereinstimmen
2. Set APP_ENV toauf production
setzen
APP_ENV productionEditIn Monica'sder .env-Datei file and change fromvon local toauf production: ändern:
# TwoZwei choices:Möglichkeiten: local|production. Use local if= you want to install Monica as a
# development version. UseEntwicklerversion, production otherwise.= alles andere.
APP_ENV=production
3. TrustReverse-Proxy-Header reverse proxy headersvertrauen (verysehr important)
wichtig)
IfFalls thedie aboveobigen doesSchritte notnicht work,helfen, add this toin .env: ergänzen:
TRUSTED_PROXIES=*
WhyWarum thisdas matters:entscheidend ist:
- Monica
isstehtbehindhinteraeinemreverseReverseproxyProxy - HTTPS
iswirdterminatedamatProxythe proxyterminiert - Intern erhält Apache
receives HTTP internally Without trusted headers, Laravel assumesnur HTTP- Ohne vertrauenswürdige Header geht Laravel von HTTP aus
4. ClearAlle andCaches rebuildlöschen allund cachesneu aufbauen (mandatory)
Pflicht!)
FromIm theInstallationsverzeichnis von Monica installation directory:ausführen:
php artisan optimize:clear
php artisan config:clear
php artisan cache:clear
php artisan route:clear
php artisan view:clear
php artisan config:cache
DoDiesen notSchritt niemals überspringen! skip this step.
Laravel cachescached URLs aggressively.sehr aggressiv.
5. RestartDienste services
neu starten
LXC / bare metalBare-Metal (Apache2)
systemctl restart apache2
Docker / Docker Compose (falls du später wechselst)
docker compose restart
6. Nginx Proxy Manager (commonhäufigstes setup)Setup)
EnabledStandardmäßig by defaultaktiviert
DoHost-Header notnicht überschreiben override Host headers
DoKein not force Force-HTTP upstream
RemoveBei customUnsicherheit: proxybenutzerdefinierte headersProxy-Header if unsureentfernen
HostApache doesbenötigt notkeine needspezielle specialKonfiguration, configurationsolange fordie thisHeader askorrekt longweitergeleitet as the headers are passed correctly.werden.
7. VerifyIm inBrowser the browser
überprüfen
OpenSeitethe site withüber HTTPS öffnen- Hard
refreshRefresh durchführen (Cmd + Shift + R) OpenDevTools →NetworkNetwork-Tab öffnenAllAlleassetsAssetsmustmüssenload viaüberhttps://geladen werden
TestDirekter directly:Test:
https://monica.example.net/css/app-ltr.css
NoEs redirectsdürfen tokeine Weiterleitungen auf http:// shouldmehr occur.auftreten.
SummaryZusammenfassung
ToUm fixMixed-Content-Probleme mixed content issues inbei Monica behindhinter aeinem reverseReverse proxyProxy (Apache2Apache2-Setup) setup):zu beheben:
SetAPP_URLtoauf HTTPS setzenSetAPP_ENVAPP_ENV=productiontosetzenproductionTrustProxy-Headerproxyvertrauenheaders(TRUSTED_PROXIES=*)ClearallAlleLaravelLaravel-Cachescacheslöschen & neu cachenRestartApacheandneuorstartenreboot.(ggf. LXC rebooten)
OnceDanach done,liefert Monica willalle correctlyAssets servekorrekt all assets overüber HTTPS. aus.