Nachdem ich gestern erfolgreich eine OwnCloud-Installation mit entsprechendem SSL-Zertifikat auf meinem Uberspace eingerichtet hatte, wollte ich neben dem Desktop-Client auch mein Android-Smartphone via WebDav zur Synchronisation mit der OwnCloud bewegen.

Das Setup

OwnCloud ist unter einer Subdomain erreichbar und liegt dazu im Verzeichnis /var/www/virtual/<user>/cloud.domain.com/.
Weiterhin ist für diese Domain ein valides SSL-Zertifikat von StartSSL aufgeschaltet und die Verbindung mittels HTTPS wird durch die entsprechende Einstellung im OwnCloud-Webinterface erzwungen.

Für den Desktop-Client ist es kein Problem, sich mit der Installation zu verbinden und Dateien zu synchronisieren. Auch davfs2 auf meinem Banana Pi oder der offizielle Android-Client (leider ohne Synchonisationsfunktion) machen keine Probleme.
Einzig der Android-Client FolderSync, der OwnCloud-Installationen (via WebDav) ansprechen können soll, meldete immer ein simples “Not Found” beim Zugriff auf die WebDav-Schnittstelle.

Mögliche Ursachen

Als mögliche Ursache ist mir SNI in den Sinn gekommen - wahrscheinlich unterstützt FolderSync dieses schlicht nicht oder nicht korrekt. Denn bei einer unverschlüsselten Verbindung via HTTP konnte OwnCloud, bzw. die WebDav-Schnittstelle, erreicht werden.
Dafür spricht auch das Error-Log, welches fehlgeschlagene Zugriffe auf die Datei remote.php im DOCUMENT_ROOT-Verzeichnis des Uberspaces (~/html/remote.php) meldete. Diese Zugriffe sollten eigentlich die OwnCloud-Installation unter /var/www/virtual/<user>/cloud.domain.com/remote.php erreichen.
Vielleicht spielt aber auch die Art und Weise, wie bei Uberspace Subdomains behandelt werden, bei dieser Problematik eine Rolle.

Die Lösung

Auch wenn ich mir nicht sicher bin, ob die gewählte Lösung optimal ist - es ist die einzige, die wirklich funktioniert hat.

Nach einem einfachen Symlink von ~/html/remote.php auf /var/www/virtual/<user>/cloud.domain.com/remote.php ließ sich FolderSync endlich zu einem Zugriff auf die WebDav-Schnittstelle und zur Synchronisation der Dateien überreden:

ln -s /var/www/virtual/<user>/cloud.domain.com/remote.php ~/html/remote.php