03-01-2019 10:05 AM
Hallo, ich habe einen Alfresco Community Server 201707 unter Windows Server 2012R2.
Dieser steht im LAN hinter eine Sophos Home mit aktiviertem WAF (Web Application Filter) - diesen verwende ich um mehrere Rechner / Dienste über eine Adresse zur verfügung zu stellen.
Das ganze ist mit einem Wildcard Zertifikat geschützt.
Es wird ein Redirect (oder eher ein Proxyverbindung) gemacht von https://host.domain.de nach http://interneip:8080
Ich kann ohne Probleme im Netzwerk zugreifen mit der internen Adresse, von extern kann ich einwandfrei Webdav und auch die Verwaltungstools nutzen - wenn ich mich jedoch an das Share anmelde, kommt nach dem Loginfenster die folgende Meldung:
Muss ich noch eine Einstellung im Alfresco anpassen?
Z.B. diese von dieser Seite: Configuring SSL for a production environment | Alfresco Documentation ? Ich hatte es eher so verstanden, das dies erst erforderlich ist wenn man Alfreso selber auf SSL Umstellt.
Danke für eure Hilfe.
03-04-2019 04:55 PM
Warum sind bei Referrer und Origin unterschiedliche Hostnamen angegeben? Beide sollten den/die gleichen Hostnamen enthalten.
03-01-2019 11:30 AM
In einem solchen Szenario ist i.d.R die CSRFPolicy Konfiguration in der share-config-custom.xml anzupassen, da die externe Adresse nicht mit der internen übereinstimmt, und so ggf. ein Validierungsfehler bei bestimmten Abfragen auftritt. Wichtig sind hier die Pattern für Referrer und Origin. In meinen Setups habe ich hierzu immer einen einfachen Konfigurationsblock mit Platzhaltern, die dann abhängig der öffentlichen Adresse ersetzt werden.
03-01-2019 05:59 PM
Vielen Dank für die schnelle Hilfe - ich habe in der Datei C:\alfresco-community\tomcat\shared\classes\alfresco\web-extension\share-config-custom.xml den folgenden Block:
<config evaluator="string-compare" condition="CSRFPolicy" replace="true">
<filter/>
</config>
gegen diesen getauscht:
<config evaluator="string-compare" condition="CSRFPolicy"> |
<properties> |
<referer>^https?://(%PUBLIC_SHARE_HOST_PATTERN%%PUBLIC_SHARE_PORT_PATTERN%|localhost%LOCAL_PORT_PATTERN%)(?:$|/.+$)</referer> |
<origin>^https?://(%PUBLIC_SHARE_HOST_PATTERN%%PUBLIC_SHARE_PORT_PATTERN%|localhost%LOCAL_PORT_PATTERN%)(?:$|/.+$)</origin> |
</properties> |
</config>
Danach den Server neugestartet - leider aber immer noch das selbe Problem. War das zuvor geschriebene richtig, oder habe ich was falsch gemacht?
03-04-2019 03:50 AM
Die Werte für die Platzhalter á la %PUBLIC_SHARE_HOST_PATTERN% müssen natürlich mit sinnvollen Werten je nach öffentlicher Adresse ersetzt werden.
Z.B. wenn host.domain.de die Serveradresse sein soll, 123.123.123.123 die theoretische IP-Adresse und die WAF ggf. auch ausgewählte Seiten per unverschlüsseltes HTTP zulässt/bereitstellt, dann wäre die folgende Einstellung denkbar:
<config evaluator="string-compare" condition="CSRFPolicy">
<properties>
<referer>^https?://(host\.domain\.de(:(80|443))?|(localhost|123\.123\.123\.123):8080)(?:$|/.+$)</referer>
<origin>^https?://(host\.domain\.de(:(80|443))?|(localhost|123\.123\.123\.123):8080)(?:$|/.+$)</origin>
</properties>
</config>
Dies ist eine komplexere Konfiguration, als man häufig im Netz als Beispiel findet. Leider ignorieren die meisten Beispiele im Netz komplett den Fakt, dass es sich um Regex-Pattern handelt, und nutzen gerade bzgl. des Hostnamen gefährlicherweise den Universalplatzhalter ".", statt diesen korrekt zu escapen. Auch findet man selten Beispiele, die sowohl für Zugriffe über WAF/Proxy funktionieren als auch für (technische) Zugriffe an diesen vorbei.
03-04-2019 06:04 AM
Hi, danke dir für deine schnelle Antwort.
..
Leider klappt es aber immer noch nicht - ich habe den folgenden Teil eingetragen und neugestartet:
<config evaluator="string-compare" condition="CSRFPolicy">
<properties>
<referer>^https?://(host\.domain\.de(443))?(?:$|/.+$)</referer>
<origin>^https?://(192\.168\.123\.123):8080)(?:$|/.+$)</origin>
</properties>
</config>
Meine URL von extern ist https://host.domain.de (keine feste IP, sondern ein DNS CNAME eintrag), intern ist die Adresse http://192.168.123.123:8080
Ist der Eintrag so richtig?
03-04-2019 04:55 PM
Warum sind bei Referrer und Origin unterschiedliche Hostnamen angegeben? Beide sollten den/die gleichen Hostnamen enthalten.
03-05-2019 03:28 PM
Super, das war es:
<config evaluator="string-compare" condition="CSRFPolicy">
<properties>
<referer>^https?://(host\.domain\.de(80|443))?|(localhost|192\.168\.123\.123):8080)(?:$|/.+$)</referer>
<origin>^https?://(host\.domain\.de(80|443))?|(localhost|192\.168\.123\.123):8080)(?:$|/.+$)</origin>
</properties>
</config>
Tags
Find what you came for
We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.