rewriteRule CALDAV mal wieder

Hi an die Community,

Ich habe mal wieder das Security Problem bei den rewriterule für CALDAV.

Ich habe

  • Nextcloud frisch installiert auf einem VServer
  • Ich habe vollen Zugriff auf die Machine
  • WebServer ist Apache
  • mod rewrite ist installiert und aktive
  • in der https.conf ist AllowOverride All gesetzt für meinen host (wenn ich den auf None setze bekomme ich eine komplett andere Meldung in den Sicherheitswarnungen
  • Nextcloud ist in einem unteverzwichnis “wolketwo” installiert
  • in der .htaccess für den host habe ich

    RewriteEngine on
    RewriteRule ^\.well-known/carddav /wolketwo/remote.php/dav [R=301,L]
    RewriteRule ^\.well-known/caldav /wolketwo/remote.php/dav [R=301,L]
    RewriteRule ^\.well-known/webfinger /wolketwo/index.php/.well-known/webfinger [R=301,L]
    RewriteRule ^\.well-known/nodeinfo /wolketwo/index.php/.well-known/nodeinfo [R=301,L]

    eingetragen.

ich bekomme den Fehler

Dein Webserver ist nicht ordnungsgemäß für die Auflösung von .well-known-URLs eingerichtet. Fehler bei: /.well-known/caldav

Wenn ich den Pfad für z.B. den Webfinger in einen nicht vorhandenen Unterordner ändere, geht der Fehler auf Webfinger.

Ich vermute also

  • generell AllowOverride All wird gefunden. (wie gesagt bei AllowOverride None gibts anderen Fehler
  • rewrite für Webfinger geht

Warum will er den CalDav nicht ?

Ich stehe vor einem Rätsel

Versuche es mal mit anhängen eines “/” am Ende der Zeile “/wolketwo/remote.php/dav”, dass daraus “/wolketwo/remote.php/dav/” wird.

1 Like

Idee war gut, leider ohne Erfolg

Hast Du Apache neu gestartet oder zumindest den “reload”-Befehl ausgeführt?

Das Problem, wenn Nextcloud in einem Subfolder installiert ist, die rewrite Regel jedoch auch im Serverroot funktionieren muss. Also wenn du

https://cloud.bar.baz/.well-known/caldav

aufruft, muss die Umleitung auch funktionieren, die .htaccess liegt jedoch im wolketwo/ Verzeichnis und kann nicht vom javascript gelesen werden der den test ausführt.
Lösung: Die .htaccess auch im “/” Verzeichnis ablegen oder in directory-Kontext in der apache2.conf (oder zum Beispiel nextcloud.conf) ablegen.

Wenn die Umleitung jedoch funktioniert, also bei Aufruf von https://cloud.bar.baz/.well-known/caldav im Browser nach https://cloud.bar.baz/wolketwo/remote.php/dav/ umgeleitet wird und die Meldung

This is the WebDAV interface. It can only be accessed by WebDAV clients such as the Nextcloud desktop sync client.

erscheint, dann brauchst du dich nicht weiter um die Meldung zu kümmern (weil es sich offensichtlich aus zum Beispiel obigem Grund um einen Fehlalarm handelt) und du kannst die Prüfung in der config/config.php ausschalten mit:

  'check_for_working_wellknown_setup' => false,

Viel Glück,
ernolf

3 Likes

https://cloud.bar.baz/.well-known/caldav. funktioniert und ich sehe die WebDav Meldung, aber

https://cloud.bar.baz/wolketwo/.well-known/caldav. tuts nicht. Da lande ich dann in

https://cloud.bar.baz/remote.php/dav

Das kann ja auch nicht richtig sein.

Ich habe die .htaccess im Host root liegen. in /wolketwo/ liegt die standard .htaccess von Nextcloud umgeändert.

So jetzt läufts. ich habe in der standard .htaccess in Installationsordner (also in /wolketwo/ jetzt die beiden Einträge mit remote.php geändert und da wolketwo ergänzt.

Auch wenn ich dabei die Anweisung “Do not change above this line” ignoriere :slight_smile:

1 Like

Hast du denn überhaupt in der config/config.php

  'htaccess.RewriteBase' => '/wolketwo',

gesetzt und den Befehl

occ maintenance:update:htaccess

ausgeführt?


ernolf

1 Like

Nein, hab ich nicht.

Steht aber leider auch nicht in der Doku unter dem Link der in dem Fehler in den Wartungseinstellungen steht.
https://docs.nextcloud.com/server/29/admin_manual/issues/general_troubleshooting.html#service-discovery

Danke für den Tipp.
Jetzt passt es

1 Like

This topic was automatically closed 8 days after the last reply. New replies are no longer allowed.