Hallo zusammen,
ich versuche gerade den Collabora Docker Container zum laufen zu bringen und von unserem moodle aus zu erreichen. Das moodle liegt extern bei einem Provider. Wir haben eine Sophos Firewall im Einsatz.
Der Dockerhost und Collabora sind von extern erreichbar, es wird mir die Adminseite und auch https://office.hans-baldung-gymnasium.de/hosting/discovery wird richtig angezeigt. Also scheint alles soweit zu laufen. Wenn ich in moodle ein kollaboratives Dokument erstelle, so startet das laden des Dokuments und es wird eine weiße Zeile und ein grauer Bereich angezeigt. Nach kurzer Zeit erscheint die Meldung „Die Verbindung zu Server wurde unterbrochen“.
In der Netzwerkanalyse des Firefox finde ich den folgenden Fehler: NS_ERROR_WEBSOCKET_CONNECTION_REFUSED
Auf der Sophos Firewall habe ich beim „Site Path Routing“ „Websocket passthrough“ eingeschaltet.
Woran kann das noch liegen?
Das moodle ist in derselben Domain, aber nicht im gleichen Netz. Collabora und nginx habe ich auf dem Docker. Ich habe es auch schon versucht Collabora in der DMZ laufen zu lassen, dabei hatte ich dasselbe Problem. Dem ReverseProxy sollte es doch eigentlich egal sein von woher die Anfragen kommen, solange der Rechner zu der entsprechenden Domäne gehört, oder? Irgendwo habe ich gelesen, es könnte an den Zertifikaten liegen, da die Firewall nach intern mit einem anderen Zertifikat arbeitet und dann die Zertifikatsprüfung nicht funktioniert. Ich habe auf dem Virtuellen Webserver der Sophos dasselbe Zertifikat liegen wie in dem nginx.
hier meine docker-compose.yml
version: '2.2'
services:
collabora:
image: collabora/code
restart: always
ports:
- 127.0.0.1:9980:9980
cap_add:
- MKNOD
environment:
- domain=[a-z]*+.hans-baldung-gymnasium.de
- username=admin
- password=****
- VIRTUAL_HOST=office.hans-baldung-gymnasium.de
- VIRTUAL_NETWORK=proxy-ssl
- VIRTUAL_PORT=9980
- VIRTUAL_PROTO=https
- ssl.enable=false
- ssl.termination=true
und meine nginx.conf
server {
listen 80;
listen [::]:80;
server_name office.hans-baldung-gymnasium.de;
location ^~ /.well-known/acme-challenge {
alias /var/www/dehydrated;
}
}
server {
listen 443 ssl;
server_name office.hans-baldung-gymnasium.de;
# add_header X-XSS-Protection "1; mode=block"; #Wenn es nicht geht, notfalls deaktivieren
ssl_certificate /srv/docker/collabora/office.pem;
ssl_certificate_key /srv/docker/collabora/privkey.pem;
# static files
location ^~ /browser {
proxy_pass https://127.0.0.1:9980;
proxy_set_header Host $http_host;
}
# WOPI discovery URL
location ^~ /hosting/discovery {
proxy_pass https://127.0.0.1:9980;
proxy_set_header Host $http_host;
}
# Capabilities
location ^~ /hosting/capabilities {
proxy_pass https://127.0.0.1:9980;
proxy_set_header Host $http_host;
}
# main websocket
location ~ ^/cool/(.*)/ws$ {
proxy_pass https://127.0.0.1:9980;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $http_host;
proxy_read_timeout 36000s;
}
# download, presentation and image upload
location ~ ^/(c|l)ool {
proxy_pass https://127.0.0.1:9980;
proxy_set_header Host $http_host;
}
# Admin Console websocket
location ^~ /cool/adminws {
proxy_pass https://127.0.0.1:9980;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $http_host;
proxy_read_timeout 36000s;
}
}
Gruß
Veit