Skip to main content

Monica CRM – Fix mixed content (HTTP assets on HTTPS)

InstallationskontextInstallation context

Monica CRM wurdewas mithilfeinstalled desusing the offiziellenofficial Proxmox VE Community ScriptsScript.

installiert.

This Das bedeutet:means:

  • Monica läuftruns ininside einema Proxmox LXC-ContainerLXC container
  • PHP, Apache2, undand diethe Verzeichnisstrukturdirectory folgenstructure denfollow the Defaultscommunity desscript Community-Scriptsdefaults
  • KonfigurationsänderungenConfiguration changes (z.such B.as .env) werdenare made innerhalbinside desthe LXC vorgenommen
  • HTTPS wirdis typischerweisetypically terminated außerhalboutside desthe Containerscontainer terminiert,via z.a B.reverse über einen Reverse Proxyproxy (e.g. Nginx Proxy Manager 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 oderor Bilderimages werdenare überloaded via http:// geladen
  • Assets werdenare blockiertblocked oderor nuronly teilweisepartially geladenloaded
  • DevTools meldetshows „Mixed“mixed Content“content”-Warnungen warnings

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_URL istis immerstill nochset aufto http:// gesetzt
  • Reverse-Proxy-HeaderReverse werdenproxy nichtheaders vertrautare not trusted
  • Laravel-Konfigurations-CacheLaravel wurdeconfiguration nichtcache geleertwas 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 the endgültigefinal öffentlichepublic URL verwenden
  • KeinNo abschließendertrailing Slashslash
  • MussMust exaktmatch mitthe derreverse Reverse-Proxy-Domainproxy übereinstimmendomain


2. Set APP_ENV aufto production setzen

InEdit 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 stehtis hinterbehind einema Reversereverse Proxyproxy
  • HTTPS wirdis amterminated Proxyat terminiertthe proxy
  • Intern erhält Apache nurreceives 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äßigEnabled aktiviertby default
  • Do Host-Headernot nichtoverride überschreibenHost headers
  • Do Keinnot Force-force HTTP upstream
  • BeiRemove Unsicherheit:custom benutzerdefinierteproxy Proxy-Headerheaders entfernenif 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
  • AlleAll Assetsassets müssenmust überload via https:// 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_URL aufto HTTPS setzen
  • Set APP_ENV=APP_ENV to production setzen
  • Proxy-HeaderTrust vertrauenproxy (TRUSTED_PROXIES=*)headers
  • Clear Alleall Laravel-CachesLaravel löschen & neu cachencaches
  • Restart Apache neuand startenor (ggf. LXC rebooten)reboot.

DanachOnce liefertdone, Monica will correctly serve alleall Assetsassets korrekt überover HTTPS aus..