ownCloud mit SSL-Proxy betreiben

Update 05.05.2014: Markus wies mich freundlicherweise in einem Kommentar darauf hin, dass es anscheinend ab Version 6 nicht mehr so aufwendig ist, ownCloud mit einem SSL-Proxy zu konfigurieren:

„Seit Version 6 muss man sich nur über den SSL Proxy als admin einloggen und https aktivieren. Der Rest konfiguriert sich selber und funktioniert. Zumindest war das bei mir so.“

Dann hoffe ich mal, dass es bei euch auch so sein wird. Ich kann es leider nicht mehr für euch testen, da ich mittlerweile nicht mehr ownCloud verwende.


 

Will man private Daten in der Wolke ablegen, ist eine sichere Verbindung zum Server Pflicht. So werden auch bei allen größeren Cloud-Anbietern die Verbindungen zwischen Client und Server mit SSL-Zertifikaten gesichert.

Will man seine privaten Daten nicht in fremde Hände geben, kommt man um eine selbst-betriebene Lösung nicht herum, sei es auf dem eigenen Webspace oder auf dem kleinen Server zuhause. Mit der Veröffentlichung der Version 5 ist nun ownCloud wieder in aller Munde. Natürlich konnte ownCloud auch schon vorher mit dem SSL-Protokoll betrieben werden. Wer allerdings kein SSL-Zertifikat sein Eigen nennen konnte und auf einen SSL-Proxy zurückgriff, hatte das Nachsehen. Denn ohne selbst Hand anlegen zu wollen, scheiterte ein Zugriff auf das ownCloud-Backend über einen SSL-Proxy bis zur letzten stabilen Version 4.5.

Dieser Umstand wurde nun in der neuen Version 5 behoben, sodass man die Verbindung zur eigenen Wolke nun auch über einen SSL-Proxy absichern kann. Wie dies geht, soll im Folgenden beschrieben werden. Die Anleitung ist am Beispiel von HostEurope beschrieben, die für ihre Kunden einen kostenlosen SSL-Proxy anbieten. In ähnlicher Form wird es sicherlich auch bei anderen Webhostern funktionieren.

1. Parameter in ownCloud anpassen

Normalerweise sollte ownCloud den Hostnamen, das Protokoll oder das Wurzelverzeichnis automatisch erkennen. Falls dies nun nicht geschieht, kann man diese Parameter überschreiben. Dazu findet man in dem Verzeichnisconfig der ownCloud-Installation die Datei config.php. In dieser erweitert man den Bereich $CONFIG um folgende Zeilen:

"overwritehost" => "ssl-proxy.tld",
"overwriteprotocol" => "https",
"overwritewebroot" => "/domain.tld/owncloud",
"overwritecondaddr" => "^10\.0\.0\.1$",

Für den SSL-Proxy von HostEurope müsste das Ganze dann folgendermaßen aussehen:

<?php
$CONFIG = array (
"overwritehost" => "ssl.webpack.de",
"overwriteprotocol" => "https",
"overwritewebroot" => "/domain.tld/owncloud", //Pfad zu deiner ownCloud-Installation
"overwritecondaddr" => "^10\\.30\\.7\\.1(?:37|38|39|40)$", //IP-Adressen des HostEurope-Proxy (10.30.7.137, 10.30.7.138, 10.30.7.139 und 10.30.7.140)
);

Nun sollte man auch auf das Backend von ownCloud per SSL-Proxy Zugriff haben. Möchte man auf ownCloud nur über eine sichere Verbindung zugreifen, sodass ein Zugriff über eine http-Verbindung gar nicht möglich ist, muss man in einem zweiten Schritt noch die .htaccess  im Wurzelverzeichnis der ownCloud-Installation anpassen.

 

2. Anpassung der .htaccess 

Die mit der Installation von ownCloud bereits angelegte .htaccess-Datei ergänzt man nach dem Eintrag RewriteEngine on  um folgende zwei Zeilen (hier am Beispiel des HostEurope-Proxy mit vier IP-Adressen):

RewriteCond %{REMOTE_ADDR} !^10\.30\.7\.1(?:37|38|39|40)$
RewriteRule ^ https://ssl.webpack.de/%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Nun sollte man beim Aufrufen der ownCloud-Netzadresse „http://domain.tld/owncloud“ automatisch auf „https://ssl-proxy.tld/domain.tld/owncloud“ weitergeleitet werden.

Programm-Versionen, auf die sich dieser Artikel bezieht:

ownCloud: 5.0

ownCloud mit SSL-Proxy betreiben

22 Gedanken zu „ownCloud mit SSL-Proxy betreiben

  1. Jochen schreibt:

    (Hier ist die alternative Lösung, die ich für Owncloud nutze)
    Alternativ könnte man auch einen SSH-Tunnel bauen, wenn man SSH-Zugriff hat. Dann wird die Kommunikation von Browser und Owncloud durch SSH verschlüsselt getunnelt.
    Im Prinzip reicht dazu ein Einzeiler (z.B. als Alias) oder man nutzt Putty mit einer abgespeicherten Konfiguration. Im Browser muss man dann als Proxy localhost (samt Port) einstellen. Mit Foxy-Proxy spart man sich das ständige Umstellen der Proxy-Konfig.
    Wies mit dem SSH-Tunnel geht, habe ich hier mal zusammengefasst:
    http://netz10.de/2011/01/10/ssh-tunnel/

      1. Also SSH ist immer sicherer als SSL, nur gibt es auf „Standard“-Webspace i.d.R. kein SSH-Zugriff. Sollte man doch welchen haben, so kann man mit genanntem „Putty“ gut darauf zugreifen. Und das muss man nicht installieren, würde also auch von einem USB-Stick laufen, falls man an einem Fremdrechner sitzt.

        Wenn man Owncloud nur privat nutzt, braucht man aus meiner Sicht kein SSL-Zertifikat kaufen. Man kann sich so ein Zertifikat auch selbst erstellen. Das funktioniert dann genauso wie mit einem gekauften, nur dass der Browser immer eine Sicherheitsmeldung bringt, da es nicht in seiner Datenbank vorhanden ist.

        1. somm schreibt:

          Ah – OK. In dem Konfigurationstool meines Webhosters kann man tatsächlich Zertifikate hochladen; wusste aber nicht, dass man sich auch selbst welche erstellen kann.
          Vielen Dank für Deine Hilfe!

    1. Georg schreibt:

      Hallo,

      vielen Dank für den Beitrag. Hat mir sehr geholfen. Die Autokonfiguration von owncloud hat bei mir nicht funktioniert.

  2. Warum hast du nicht direkt eine SSL-Verbindung über 443 erstellt. Kannst du doch ganz einfach in dem Webserver deines Vertrauens einstellen. Oder hast du bei deinem Hoster nur Webspace ohne Zugriff auf die Servereinstellungen?

  3. Alishara schreibt:

    Super Tipp! Ich habe meine ownCloud auch bei Hosteurope liegen und hatte immer Probleme den SSL-Proxy zu nutzen. Funktioniert nun einwandfrei. Einzig die iOS-Clients machen Probleme da ich Dateien zwar hochladen kann aber nicht mehr anzeigen da er mir sagt sie wären defekt dabei habe ich mit jedem anderen client problemlos zugriff darauf und ungesichert über den iOS-Client ebenfalls. Sehr seltsam.

    1. Zu iOS-Anwendungen kann ich dir leider nichts sagen, da ich Android verwende und da funktioniert es mit der ownCloud-App ohne Probleme. Da könntest du nur mal beim Entwickler der App nachfragen inwiefern SSL-Unterstützung integriert ist und ob es problemlos mit SSl-Proxys funktionieren müsste.

  4. Michael schreibt:

    Hallo Sören

    Ich hatte das auch schon soweit, nur „overwritecondaddr“ hatte ich nicht.
    Ich kann jetzt über das Web Front-end auf den Kalender zugreifen

    Nur über WebDAV bekomme ich Fehlermeldungen.
    Thunderbird zeigt einen Fehler 403.
    Wenn ich den Verbindungs-URL direkt im Browser versuche, dann sehe ich

    Requested uri (SERVERNAME.de/owncloud/remote.php/caldav/calendars/USERNAME/defaultcalendar) is out of base uri (/SERVERNAME.de/owncloud/remote.php/caldav/)

    In meinem URI fehlt der führende „/“.
    Hat da jemand eine Idee?

  5. Markus M. schreibt:

    Seit Version 6 muss man sich nur über den SSL Proxy als admin einloggen und https aktivieren. Der Rest konfiguriert sich selber und funktioniert. Zumindest war das bei mir so.

    1. Anonymous schreibt:

      Leider kommt dann bei mir dieser Fehler:
      Firefox kann keine Verbindung zu dem Server unter ssl.webpack.de aufbauen.

  6. thw schreibt:

    Hi,

    danke für den Beitrag. Funktioniert auch mit der aktuellen owncloud-Version (7) out of the box – einfach die config.php anpassen und gut. Die Änderungen an der .htaccess waren bei mir nicht nötig, man kann sich einfach per SSL einloggen und dann den Haken bei „Erzwinge verschlüsselte Verbindung“ (oder so ähnlich) setzen.

    Noch ein Tipp (hat bei mir kurz für Verwirrung gesorgt): Nach dem Umstellen auf SSL konnte ich mich erstmal nicht mehr einloggen, mit einem anderen Browser ging’s aber. Ich habe dann im ersten Browser alle Cookies für meine Domain und für ssl.webpack.de gelöscht, das hat das Problem behoben.

    LG,
    thw

Schreibe einen Kommentar zu Georg Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert