Moin zusammen,
ich bin blutiger Anfänger, sowohl mit diesem Forum, wie auch in der Raspberry und Nextcloud Welt. Bitte verzeiht schonmal wenn ich vieles nicht verstehe oder falsch angehe
Erstmal: Ist das hier nun das passende "Unterforum" um für die Anleitung: Nextcloud mit Apache2, MariaDB und Letsencrypt Fragen zu stellen bzw Hilfe zu holen? Falls nicht wo bin ich richtig?
Nun zu meinem Problem:
Ich habe mir einen Raspberrypi 5 gekauft und wollte damit über Nextcloud meine eigene Cloud nutzen. Dazu die habe ich die Anleitung von Franjo G gefunden und soweit durchgearbeitet. Vielen lieben Dank für die Großartige Arbeit schon einmal an dieser Stelle! Es hat auch alles funktioniert bzw. ich konnte mir es zusammenreimen, nur beim letzten Step "Letsencrypt installieren" scheitere ich. Abweichend zur Anleitung hatte ich:
Nicht in Putty sondern direkt auf dem Pi eingegeben. Macht das einen Unterschied?
Wenn ich nun im nächsten step (mittlerweile über putty):
Eingebe bekomme ich folgende Fehlermeldung:
admin@raspberrypi:~ $ sudo certbot --apache
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Please enter the domain name(s) you would like on your certificate (comma and/or
space separated) (Enter 'c' to cancel): schlacht.ddnss.de
Requesting a certificate for schlacht.ddnss.de
Certbot failed to authenticate some domains (authenticator: apache). The Certificate Authority reported these problems:
Domain: schlacht.ddnss.de
Type: connection
Detail: 2a02:908:1900:8::1a5a: Fetching http://schlacht.ddnss.de/.well-known/acme-challenge/SS9hJ0BtAzjE6puHl9BmMSewr1O7DURHPFvfG76Eqq0: Error getting validation data
Hint: The Certificate Authority failed to verify the temporary Apache configuration changes made by Certbot. Ensure that the listed domains point to this Apache server and that it is accessible from the internet.
Some challenges have failed.
Ask for help or search for solutions at https://community.letsencrypt.org. See the logfile /var/log/letsencrypt/letsencrypt.log or re-run Certbot with -v for more details.
Display More
Die letsencrypt.log spuckt am Ende dies aus:
Domain: schlacht.ddnss.de
Type: connection
Detail: 2a02:908:1900:8::1a5a: Fetching http://schlacht.ddnss.de/.well-known/acme-challenge/SS9hJ0BtAzjE6puHl9BmMSewr1O7DURHPFvfG76Eqq0: Error getting validation data
Hint: The Certificate Authority failed to verify the temporary Apache configuration changes made by Certbot. Ensure that the listed domains point to this Apache server and that it is accessible from the internet.
2025-03-18 08:57:31,582:DEBUG:certbot._internal.error_handler:Encountered exception:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/certbot/_internal/auth_handler.py", line 106, in handle_authorizations
self._poll_authorizations(authzrs, max_retries, best_effort)
File "/usr/lib/python3/dist-packages/certbot/_internal/auth_handler.py", line 206, in _poll_authorizations
raise errors.AuthorizationError('Some challenges have failed.')
certbot.errors.AuthorizationError: Some challenges have failed.
2025-03-18 08:57:31,582:DEBUG:certbot._internal.error_handler:Calling registered functions
2025-03-18 08:57:31,582:INFO:certbot._internal.auth_handler:Cleaning up challenges
2025-03-18 08:57:31,771:DEBUG:certbot._internal.log:Exiting abnormally:
Traceback (most recent call last):
File "/usr/bin/certbot", line 33, in <module>
sys.exit(load_entry_point('certbot==2.1.0', 'console_scripts', 'certbot')())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/certbot/main.py", line 19, in main
return internal_main.main(cli_args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/certbot/_internal/main.py", line 1736, in main
return config.func(config, plugins)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/certbot/_internal/main.py", line 1440, in run
new_lineage = _get_and_save_cert(le_client, config, domains,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/certbot/_internal/main.py", line 138, in _get_and_save_cert
lineage = le_client.obtain_and_enroll_certificate(domains, certname)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/certbot/_internal/client.py", line 516, in obtain_and_enroll_certificate
cert, chain, key, _ = self.obtain_certificate(domains)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/certbot/_internal/client.py", line 428, in obtain_certificate
orderr = self._get_order_and_authorizations(csr.data, self.config.allow_subset_of_names)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/certbot/_internal/client.py", line 496, in _get_order_and_authorizations
authzr = self.auth_handler.handle_authorizations(orderr, self.config, best_effort)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/certbot/_internal/auth_handler.py", line 106, in handle_authorizations
self._poll_authorizations(authzrs, max_retries, best_effort)
File "/usr/lib/python3/dist-packages/certbot/_internal/auth_handler.py", line 206, in _poll_authorizations
raise errors.AuthorizationError('Some challenges have failed.')
certbot.errors.AuthorizationError: Some challenges have failed.
2025-03-18 08:57:31,773:ERROR:certbot._internal.log:Some challenges have failed.
Display More
Wenn ich das Problem richtig eingegrenzt habe liegt es entweder an meiner Portweiterleitung oder am Apache Server...scheinbar an http/port 80.
Nun ein paar Infos:
Hardware:
-Raspberrypi 5 8GB, original Aktivlüfter, original 27W Netzteil, original M2-Hat mit original 512GB SSD, Original Gehäuse ohne Deckel.
- Fritbox 6591 Cable auf Version 8.03
Software:
-Raspi OS Bookworm installiert über Raspi imager mit einem USB/nvme Adapter direkt auf die SSD. Entsprechend der Anleitung auf neustem Stand.
Istzustand/Was habe ich bisher versucht:
Über die Interne IP des Pi komme ich auf meine Nextcloud Installation drauf. Diese Spuckt nach durcharbeiten der Anleitung von franjoG noch folgende Fehler aus:
Der obere rote wird ja vermutlich durch letsencrypt behoben. Die anderen Sachen dürften meinem Verständniss nach jetzt für dieses Problem kein Hinderniss sein.
Wenn ich meine Externe dyndns schlacht.ddnss.de eingebe sagte mein Firefox: Fehler geht nicht!
Edit: Nachdem ich diesen Post gemacht habe lande ich auf der Login Seite meiner Fritzbox...sollte mir das zu denken geben? Mein Bauchgefühl sagt ich hantiere hier mit zu viel gefährlichem nichtwissen
Daraufhin hatte ich überprüft ob meine DynDns auflöst. ddnss.de sagt:
Dies entspricht meiner ipv6 Adresse laut Fritzbox:
Meine Portfreigabe in der Fritzbox:
Ich hatte dann im Internet nach Lösungen gesucht, aber nichts gefunden was mir geholfen hat.
Danach habe ich Gemini das Problem beschrieben und folgende Antwort bekommen:
Die Fehlermeldung "Error getting validation data" beim Versuch, ein Let's Encrypt-Zertifikat für deine Nextcloud-Installation auf dem Raspberry Pi zu erstellen, deutet darauf hin, dass Let's Encrypt deine Domain nicht erreichen kann, um die Domainvalidierung durchzuführen. Hier sind einige mögliche Ursachen und Lösungsansätze:
1. Portweiterleitung und Firewall:
* Überprüfe die Portweiterleitung: Stelle sicher, dass die Portweiterleitung in deiner Fritzbox korrekt eingerichtet ist. Port 80 (HTTP) und Port 443 (HTTPS) müssen auf die interne IP-Adresse deines Raspberry Pi weitergeleitet werden.
* Firewall auf dem Raspberry Pi: Überprüfe, ob die Firewall (z.B. ufw) auf deinem Raspberry Pi die Ports 80 und 443 blockiert. Du kannst die Firewall vorübergehend deaktivieren, um zu testen, ob dies das Problem ist:
* sudo ufw disable
* Nach dem Test solltest du die Firewall wieder aktivieren und die entsprechenden Ports freigeben:
* sudo ufw allow 80
* sudo ufw allow 443
* sudo ufw enable
* Firewall in der Fritzbox: Auch die Fritzbox hat eine eigene Firewall. Überprüfe, ob diese die Ports 80 und 443 nicht blockiert.
2. DNS-Probleme:
* DNS-Propagation: Nachdem du deine dynamische DNS-Adresse (schlacht.ddnss.de) eingerichtet hast, kann es einige Zeit dauern, bis die DNS-Änderungen weltweit propagiert sind. Überprüfe, ob deine Domain korrekt auf die öffentliche IP-Adresse deiner Fritzbox aufgelöst wird. Du kannst Online-Tools wie "DNS Checker" verwenden, um dies zu überprüfen.
* DDNS-Dienst: Stelle sicher, dass dein DDNS-Dienst (z.B. von deinem Internetanbieter oder einem Drittanbieter) korrekt funktioniert und deine öffentliche IP-Adresse regelmäßig aktualisiert.
3. Nextcloud-Konfiguration:
* Trusted Domains: Überprüfe die Konfiguration deiner Nextcloud-Installation. Stelle sicher, dass deine dynamische DNS-Adresse (schlacht.ddnss.de) in der Liste der "trusted domains" in der config.php-Datei von Nextcloud eingetragen ist.
* Webserver-Konfiguration: Überprüfe die Konfiguration deines Webservers (z.B. Apache oder Nginx). Stelle sicher, dass der Webserver korrekt für die Verarbeitung von Anfragen auf Port 80 und 443 konfiguriert ist.
4. Let's Encrypt-Client:
* Client-Konfiguration: Überprüfe die Konfiguration deines Let's Encrypt-Clients (z.B. Certbot). Stelle sicher, dass du die korrekte Domain-Adresse (schlacht.ddnss.de) eingegeben hast.
* Challenge-Typ: Let's Encrypt verwendet verschiedene Challenge-Typen zur Domainvalidierung. Der HTTP-01-Challenge erfordert, dass dein Webserver auf Port 80 erreichbar ist. Der DNS-01-Challenge erfordert, dass du einen DNS-TXT-Eintrag in deiner DNS-Zone hinzufügst. Probiere verschiedene Challenge-Typen aus, um zu sehen, ob einer funktioniert.
5. IPv6-Probleme:
* IPv6-Konfiguration: Wenn dein Internetanschluss sowohl IPv4 als auch IPv6 unterstützt, kann es zu Problemen kommen, wenn die IPv6-Konfiguration nicht korrekt ist. Deaktiviere IPv6 vorübergehend auf deinem Raspberry Pi und deiner Fritzbox, um zu testen, ob dies das Problem ist.
Zusätzliche Tipps:
* Überprüfe die Logdateien deines Webservers und des Let's Encrypt-Clients auf Fehlermeldungen.
* Verwende ein Tool wie curl oder wget, um zu überprüfen, ob deine Nextcloud-Installation von außerhalb deines lokalen Netzwerks erreichbar ist.
* Nextcloud bietet auch die Möglichkeit, Zertifikate direkt über Nextcloud zu beziehen.
Display More
-Portweiterleitung habe ich wie gepostet geprüft.
-Firewall deaktivieren war ich kritisch gegenüber
-Ports freigeben über sudo ufw allow 80 etc ging nicht, da wohl kein ufw.
-Firewall in Fritzbox hatte ich erfolglos diesen haken versucht:
-Habe mit DNS checker meinen ddnss geprüft.
Die AAAA geht:
Die A (=Port 80 Http?) geht nicht!
Aber was fange ich mit dieser Info an?
Weiterhin gesucht:
In der config.php von Nextcloud sieht es so aus:
<?php
$CONFIG = array (
'instanceid' => 'ichmachdasmalweg',
'passwordsalt' => 'ichmachdasmalweg',
'secret' => 'ichmachdasmalweg',
'trusted_domains' =>
array (
0 => 'localhost',
1 => '192.168.178.86',
2 => 'schlacht.ddnss.de',
),
'datadirectory' => '/NC/data',
'dbtype' => 'mysql',
'version' => '31.0.1.2',
'overwrite.cli.url' => 'http://192.168.178.86',
'dbname' => 'nextcloud',
'dbhost' => 'localhost',
'dbport' => '',
'dbtableprefix' => 'oc_',
'mysql.utf8mb4' => true,
'dbuser' => 'ichmachdasmalweg',
'dbpassword' => 'ichmachdasmalweg',
'installed' => true,
'memcache.local' => '\\OC\\Memcache\\APCu',
'loglevel' => 4,
'maintenance_window_start' => '1',
'memcache.locking' => '\\OC\\Memcache\\APCu',
'maintenance' => false,
'default_phone_region' => 'DE',
);
Display More
Meine apache2.conf hat am Ende stehen:
# Include the virtual host configurations:
IncludeOptional sites-enabled/*.conf
Redirect 301 /.well-known/carddav /remote.php/dav
Redirect 301 /.well-known/carddav /nextcloud/remote.php/dav/
Redirect 301 /.well-known/caldav /remote.php/dav
Redirect 301 /.well-known/webfinger /index.php/.well-known/webfinger
Redirect 301 /.well-known/nodeinfo /index.php/.well-known/nodeinfo
Muss ich den Port 80 irgendwo freischalten? Falls ja wo und wie geht das bitte?
Oder was ist mein Fehler? Ich bin mittlerweile echt verzweifelt nach so vielen Stunden ahnungsloser Fehlersuche...immerhin habe ich ein paar Sachen auf dem Weg lernen können.
Vielen lieben Dank an alle die sich meine Textwall bis hier durchgelesen haben
Falls ich etwas an nötigen Infos vergessen habe, für mich gefährliche Infos zu viel gepostet habe oder so, sagt bitte Bescheid