Nextcloud .well-known Verzeichnis wiederherstellen?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Bist Du sicher, dass Du das Verzeichnis hattest? Es ist in der Regel unwichtig bzw. auch gar nicht vorhanden. Es gibt Anwendungen, die für die Synchronisation nach /.well-known/carddav bzw. /.well-known/caldav suchen. Auch für das Ausrollen von Zertifikaten per ACME wird das Verzeichnis benötigt. Dazu hat Nextcloud in der .htaccess entsprechende Rewrite-Regeln:

<IfModule mod_rewrite.c>
 RewriteEngine on
 ...
 RewriteRule ^\.well-known/carddav /remote.php/dav/ [R=301,L]
 RewriteRule ^\.well-known/caldav /remote.php/dav/ [R=301,L]
 RewriteRule ^\.well-known/(?!acme-challenge|pki-validation) /index.php [QSA,L]
 RewriteRule ^(?:\.(?!well-known)|autotest|occ|issue|indie|db_|console).* - [R=404,L]
</IfModule>

Die Aufrufe zur Synchronisierung per CardDAV und CalDAV werden auf /remote.php/dav umgeleitet. Alle anderen Aufrufe landen bei /index.php.

Bleibt also noch das Ausrollen von Zertifikaten per ACME, also z. B von Letsencrypt. Verwendest Du Zertifikate von Letsencrypt? Dann lege das Verzeichnis einfach neu an:

sudo mkdir -p /var/www/nextcloud/.well-known/acme-challenge
sudo chown www-data.www-data /var/www/nextcloud/.well-known/acme-challenge

Wenn Du ein neues Zertifikat bei Letsencrypt beantragst, werden da die nötigen Challenges hineingeschrieben und anschließend wieder gelöscht. Das Verzeichnis ist also im Regelfall leer.

gehm1 
Fragesteller
 03.10.2021, 22:11

Danke schonmal für die hilfreiche Antwort!

In meinen Nextcloud-Einstellungen finden sich nämlich u. a. folgende Probleme:

  • Dein Web-Server ist nicht richtig eingerichtet um "/.well-known/webfinger" aufzulösen. Weitere Informationen findest Du in der Dokumentation.
  • Dein Web-Server ist nicht richtig eingerichtet um "/.well-known/nodeinfo" aufzulösen. Weitere Informationen findest Du in der Dokumentation.
  • Dein Web-Server ist nicht richtig eingerichtet um "/.well-known/caldav" aufzulösen. Weitere Informationen findest Du in der Dokumentation.
  • Dein Web-Server ist nicht richtig eingerichtet um "/.well-known/carddav" aufzulösen. Weitere Informationen findest Du in der Dokumentation.
0
elmex7  03.10.2021, 22:34
@gehm1

Ich glaube, dir fehlen nur Weiterleitungen in der Serverkonfiguration bzw. .htaccess dazu. Es sind nur Links sozusagen, es brauch dazu den physischen Ordner nicht

1
franzhartwig  03.10.2021, 22:44
@gehm1

Hier fehlen die entsprechenden Einträge in der .htaccess. Versuche mal

sudo -u www-data php occ maintenance:update:htaccess

Das sollte das Problem richten.

1
gehm1 
Fragesteller
 04.10.2021, 13:30
@elmex7

Ich habe jetzt zu meiner .htaccess im Wurzelverzeichnis des Servers das hinzugefügt:

<IfModule mod_rewrite.c>
 RewriteEngine on
 RewriteRule ^\.well-known/carddav /h/nextcloud/remote.php/dav/ [R=301,L]
 RewriteRule ^\.well-known/caldav /h/nextcloud/remote.php/dav/ [R=301,L]
 RewriteRule ^\.well-known/(?!acme-challenge|pki-validation) /h/nextcloud/index.php [QSA,L]
 RewriteRule ^(?:\.(?!well-known)|autotest|occ|issue|indie|db_|console).* - [R=404,L]
</IfModule>

Es zeigt aber noch die gleichen Meldungen an.

Liegt das vielleicht daran, dass meine Domain (z.B. domain.de) in /h umgeleitet wird? Nextcloud ist quasi über domain.de/nextcloud erreichbar.

0
gehm1 
Fragesteller
 04.10.2021, 13:31
@franzhartwig

Ich habe auf meinem gemieteten Server leider keine sudo-Berechtigung....

0
franzhartwig  04.10.2021, 14:07
@gehm1
Liegt das vielleicht daran, dass meine Domain (z.B. domain.de) in /h umgeleitet wird? Nextcloud ist quasi über domain.de/nextcloud erreichbar.

Ja, das ist das Problem. Wie kommst Du jetzt auf /h?

Ich habe auf meinem gemieteten Server leider keine sudo-Berechtigung.

Dann scheidet der occ-Befehl natürlich aus. In der .htaccess muss es dann heißen:

<IfModule mod_rewrite.c>
 RewriteEngine on
 RewriteRule ^\.well-known/carddav /nextcloud/remote.php/dav/ [R=301,L]
 RewriteRule ^\.well-known/caldav /nextcloud/remote.php/dav/ [R=301,L]
 RewriteRule ^\.well-known/(?!acme-challenge|pki-validation) /nextcloud/index.php [QSA,L]
 RewriteRule ^(?:\.(?!well-known)|autotest|occ|issue|indie|db_|console).* - [R=404,L]
</IfModule>
1
gehm1 
Fragesteller
 04.10.2021, 14:27
@franzhartwig

Ach danke, mein Problem war, dass die .htaccess nicht im Wurzelverzeichnis liegen muss, sondern dort, wo die Domain landet.....

Jetzt funktioniert es!

0

Üblicherweise wird dieser Ordner benutzt. um z.b. LetsEncrypt Zertifikate zu verifizieren.

Es sollte also normalerweise gar nicht stören, wenn dieser Ordner fehlt. Der Server wird ihn sich wahrsheinlich selber ersttellen, wenn er ihn benötigt.