Nach Update Warning wegen well-known unter nginx

Hallo Forum,

ich habe heute meine Instanz auf NC29 aktualisiert, es scheint soweit alles/das meiste zu funktionieren, aber ich bekomme einige Warnings.
In diesem Thread möchte ich erstmal nur die Sache mit “well-known” ansprechen.

Die Instanz lÀuft unter einem Debian 12 (bookworm) auf x86_64 Hardware. PHP ist in Version 8.2 installiert.
Webserver ist ein nginx 1.22.1, Nextcloud liegt dabei in einem Subdir.

Seit dem Update bekomme ich diese Warnung:
Your web server is not properly set up to resolve .well-known URLs, failed on: /.well-known/caldav For more details see the documentation :arrow_upper_right:.

Vor den Update gab es diese Meldung nicht.
Ich habe mir dann die verlinkte Dokumentation angesehen und exakt den Block aus der Anleitung in die Site kopiert. Keine Änderung, die Warnung kommt trotzdem.

Kalendersynchronisation mit meinem Handy klappt aber.

Kann mir jemand sagen, worauf ich bei diesem “well-known” genau zu achten habe? Was eventuell falsch sein könnte?

Danke,
Schultze

2 Likes

Hallo,

habe exakt das gleiche Bild nach einem Update heute Morgen. Webserver ist ein nginx 1.25.4 auf einem Ubuntu 20.04 und PHP 8.1. Nextcloud liegt auch in einem subdir.

Warnung erscheint, aber Synchronisation mit dem Androiden lÀuft ohne Fehler.

Danke

Grauwolf

Hab auch das Problem, auf GitHub hab ich die Info bekommen das ab NC29 die PrĂŒfung ĂŒber PHP und nicht mehr durch den Browser erfolgt. Es wird dafĂŒr die overwrite.cli.url verwendet. Aber so richtig schlau bin ich daraus auch nicht geworden.

Link zur Quelle

Konnte bei mir das Problem lösen, es lag daran das ein slash hinter dav erwartet wird im Script “WellKnownUrls.php”, was ja neu sein soll bei nextcloud 29. Vorher war es bei mir ohne den letzten Slash kein Problem. Seit NC 29 ist die PrĂŒfung wohl strenger, damit wird auch der letzte Slash geprĂŒft, ist er nicht da gibt es die Fehlermeldung, deshalb wurde auch die FunktionalitĂ€t nicht beeintrĂ€chtigt weil der slash nicht nötig ist damit es funktioniert, aber ohne wird eben der Fehler angezeigt. Hier zum nachlesen

Also statt

/remote.php/dav

Sollte es so Aussehen

/remote.php/dav/

Da ich nginx Proxy Manager vor der nextcloud habe musste ich in den advanced Einstellungen nur den Slash einfĂŒgen.

location = /.well-known/carddav {
return 301 $scheme://$host:$server_port/remote.php/dav/;
}
location = /.well-known/caldav {
return 301 $scheme://$host:$server_port/remote.php/dav/;
}

GrĂŒĂŸe

2 Likes

Es scheint, als konnte eine Lösung gefunden werden, die bei meiner Installation funktioniert (nginx mit Nextcloud 29 im Subdir): [Bug]: NC29 .well-known URLs, failed on: /.well-known/caldav · Issue #45033 · nextcloud/server · GitHub

Ich habe heute auf Nextcloud 29 geupdatet und das selbe Problem. Da ich Traefik einsetze, musste ich meine Middleware anpassen:

http:
  routers:
    nextcloud:
      rule: "Host(`cloud.example.com`)"
      middlewares:
        - nextcloud-dav
        - nextcloud-info
      entrypoints:
        - https
      service: "nextcloud"

  services:
    nextcloud:
     loadBalancer:
        servers:
          - url: http://172.17.0.1:8080/
        passHostHeader: true

  middlewares:
    nextcloud-dav:
      redirectRegex:
        regex: "https://cloud.example.com/.well-known/ca(l|rd)dav(/(.*))?"
        replacement: "https://cloud.example.com/remote.php/dav/${3}"
    nextcloud-info:
      redirectRegex:
        regex: "https://cloud.example.com/.well-known/(webfinger|nodeinfo)(/(.*))?"
        replacement: "https://cloud.example.com/index.php/.well-known/${1}/${3}"

Damit hat sich das Problem mit caldav und carddav gelöst, aber Nextcloud meckert immer noch ĂŒber webfinger, obwohl laut curl alles korrekt ist:

$ curl -D- -v -L http://cloud.example.com/.well-known/webfinger/ 2>&1 | egrep "(Host:|GET|location:)"
> GET /.well-known/webfinger/ HTTP/1.1
> Host: cloud.example.com
> GET /.well-known/webfinger/ HTTP/2
> Host: cloud.example.com
< location: https://cloud.example.com/index.php/.well-known/webfinger/
location: https://cloud.example.com/index.php/.well-known/webfinger/
> GET /index.php/.well-known/webfinger/ HTTP/2
> Host: cloud.example.com

Hat dazu noch jemand eine Lösung? Oder muss ich auf ein Update warten?

Ich habe das Problem gelöst. WÀhrend hinter caldav und cardav jetzt ein / sein muss, darf er nicht hinter webfinger oder nodeinfo sein. Die Middleware muss also so angepasst werden.

nextcloud-info:
      redirectRegex:
        regex: "https://cloud.example.com/.well-known/(webfinger|nodeinfo)(/(.*))?"
        replacement: "https://cloud.example.com/index.php/.well-known/${1}"
1 Like

Hallo zusammen,

ich hatte dieselbe Fehlermeldung. Nachdem ich diesen Thread dann gelesen habe, hatte ich auch zunÀchst die Nginx Config in Verdacht, aber dort war der Trailing Slash schon korrekt gesetzt.

Das Problem lag bei mir woanders.

Ich musste “localhost” in meine “trusted_domains” aufnehmen. In der config.php zum Beispiel:

  'trusted_domains' =>
  array (
          0 => 'cloud.mydomain.tld',
          1 => 'localhost',
  ),

Zuvor war dort nur der erste EIntrag vorhanden. Woran es genau liegt - keine Ahnung. Aber der Eintrag scheint zu helfen.

1 Like

Hi, ich hab den Slash bereits hinten dran gehabt, ich habe localhost zum array in der config.php hinzugefĂŒgt und, was auch mal jemand als Lösung genannt hatte, einen .well-known Ordner im NextCloud Verzeichnis angelegt. Allerdings erhalte ich die Meldung immer noch seit dem Upgrade auf 29.0.2. Bei mir bezieht es sich nur auf caldav. Ich habe nach wie vor keine Lösung dafĂŒr finden können.