Letsencrypt schlägt fehl

Hallo liebe Community,

bin leider seit bald 2 Wochen an diesem Problem dran und finde keine Lösung, und würde mich freuen wenn ihr mir helft. Falls ich Infos vergessen hab, liefer ich sie nach!

Ich möchte auf meine Nextcloud-Instanz über einen Raspberry Pi 3 von außen/remote zugreifen, ohne VPN. Beim Installationswizard komme ich nicht an letsencrypt vorbei (siehe Logauszug am Ende des Posts). Was übersehe ich hier? Bin für jede Hilfe dankbar!
(Musste leider einige Bilder und URLs entfernen oder ersetzen. Hoffe es ist trotzdem verständlich)

Hier mein Setup:

  • Router: FRITZ!Box 7590.
  • Nextcloud PI Image: von github nextcloud
  • NextCloudPi Version: v1.50.3. Das Image hat den Namen NextCloudPi_07-25-22.
  • Nextcloud Version: 23.0.6.1
  • PHP Version: PHP 7.4.33
  • Apache version: Apache/2.4.54 (Debian)

Ich habe eine Domain (danielxxxcloud.hopto.org) und den DDNS hab ich über noip.com bekommen. Die Domain ist im Router in der DNS-Rebind-Schutz-Liste eingetragen.

So ist der RaspberryPi freigegeben:

Der DDNS ist im Router auch aktiviert:
(kann das Bild leider nicht einfügen)
DynDNS-Anbieter: No-IP.com
Domainname: meineDomain
Benutzername: meineEmail
Kennwort: ****

Im Nextcloud Pi Panel ist die Statische Ip konfiguriert.
image

Beim Wizard komme ich an dem DDNS-Schritt nicht weiter, weil letsencrypt fehlschlägt. Ich bekomme zur Zeit Fehlermeldung:
[ dnsmasq ] (Sat Nov 26 17:17:13 GMT 2022)
System config value trusted_domains => 2 set to string meineDomain
System config value overwrite.cli.url set to string https://meineDomain
System config value trusted_proxies => 11 set to string 127.0.0.1
System config value trusted_proxies => 12 set to string ::1
System config value trusted_proxies => 13 set to string meineDomain
System config value trusted_proxies => 14 set to string 192.168.xxx.10
✓ redis is configured
✓ push server is receiving redis messages
✓ push server can load mount info from database
✓ push server can connect to the Nextcloud server
✓ push server is a trusted proxy
✓ push server is running the same version as the app
✓ push server is running the same version as the app
configuration saved
dnsmasq enabled

[ letsencrypt ] (Sat Nov 26 17:17:42 GMT 2022)
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator webroot, Installer None
Requesting a certificate for meineDomain
Performing the following challenges:
http-01 challenge for meineDomain
Using the webroot path /var/www/nextcloud for all unmatched domains.
Waiting for verification…
Challenge failed for domain meineDomain
http-01 challenge for meineDomain
Cleaning up challenges
Some challenges have failed.
IMPORTANT NOTES:

  • The following errors were reported by the server:

    Domain: meineDomain
    Type: connection
    Detail: 83.135.xxx.xx: Fetching
    http:// meineDomain /.well-known/acme-challenge/4VE4ZIkWIjrDtc3Mly6fTsJD8WpwWFU4RSNDeAOrqBQ:
    Timeout during connect (likely firewall problem)

    To fix these errors, please make sure that your domain name was
    entered correctly and the DNS A/AAAA record(s) for that domain
    contain(s) the right IP address. Additionally, please check that
    your computer has a publicly routable IP address and that no
    firewalls are preventing the server from communicating with the
    client. If you’re using the webroot plugin, you should also verify
    that you are serving files from the webroot path you provided.

Hi,

Auf der Fritz.box sind Port 80 und 443 zu öffnen und weiterzuleiten auf .
Zusätlich den Port 80 öffnen und dann nochmal versuchen.
Ohne Verschlüssungunen landen Anfragen auf HTTP (Port 80)
80 ist HTTP unverschlüsselt und 443 ist schon verschlüsselt.

Viel Erfolg

Hallo speedy77, danke für den Tipp

Port 80 und 443 habe ich hinzugefügt, und zwar so:

Und so:

Ich bekomme allerdings immer noch den gleichen Error bei letsencrypt

Hast Du die Zertifikate schon oder möchtest Du diese erst erstellen? Wenn Du zu oft erstellen willst blockt lensencrypt die Anfrage für eine Woche. Da hilft nur noch -force…
Lies mal bei decatec.de die Anleitung durch. Auch der Test!

Hi Jens, du meinst das letsnecrypt-Zertifikat? Das habe ich nicht. Jeweils über den Wizard und über das Nextcloupi Web Panel schlägt es immer mit dem Error oben fehl. Das Problem mit den zu vielen Anfragen hatte ich mit einer anderen Domain, in dem Fall aber nicht.

In der Error-Message steht “Likely a firewall problem”. Aber ich verstehe nicht, was das Problem genau ist.

Wie sehe ich denn, ob Port 80 und 443 korrekt konfiguriert sind?

EDIT:
In der System Info vom Nextcloudpi Panel sehe ich auch, dass bei den Punkten “Port check 80” und “Port check 443” "closed steht. Wo liegt denn der Fehler, wenn ich doch die Ports freigegeben habe in der Fritz.box?

Lösch Mal die Freigaben und starte es nochmals. FB; Internet Freigabe… NextcloudPi http Server(80) und HTTPS Server (443) freigeben.
Dann glaube ich zweimal übernehmen drücken. Aber hast du mal getestet ob dein DNS Name ordentlich aufgelöst wird?

Ping meine Domain.de

Hi Jens,
das mit dem Ping war ein guter Hinweis. Tatsächlich wird die Seite nicht aufgelöst. Mit ping {ip-adresse} klappt es. Ich erinner mich, dass ich den DNS-Server geändert habe. In der dhcpcd.conf-Datei habe ich ein paar Sachen geändert, aber ich weiß nicht mehr was. In der Datei steht ein Hinweis, dass diese Datei nicht angefasst werden soll, was ich natürlich ignoriert habe.

Kann man die Datei zurücksetzen?

Nunja wenn die Namensauflösung nicht funktioniert würde ich ehr nach den Einstellungen von Noip schauen. Eventuell mal die Hilfeseiten von Noip lesen welchen DNS Server eingetragen sein muss.

Hi Jens,

Muss ich den Ping aus dem selben Netzwerk aus starten oder von außerhalb (zb. vom Handy)?

Ich hab nochmal alles neu aufgesetzt. Über den Wizard hat letsencrypt einmal geklappt. Wenn ich aber im Nextcloud Web Panel auf letsencrypt klicke und “Apply” klicke, erhalte ich wieder den bekannten Fehler. Genauso bekomm ich den Fehler beim Wizard, wenn ich am Punkt “letsencrypt” bin.

So sieht die Portfreigabe in der Fritzbox nun aus:


Sollen hier 4 Einträge drin sein?

Wenn Du IPv6 in deinem Heimnetz nutzt dann schon. Meist reicht aber v4. Wichtig ist nur das der Raspberry immer die gleiche IP bekommt. Stellt man auch in der Fritzbox ein.
Das mit der Namensauflösung; am besten mal auf dem Smartphone probieren bzw. von außen. Da dein jetziger die Adresse intern auflöst (meist Fritzbox) DNS Server ist. Kann man aber auch wechseln. Was schreibt den NoIP dazu. Haben die einen direkt ansprechbaren DNS Server?

Hi Jens,

soweit ich das sehe hat NOIP nur einen DynDNS, den ich in der Fritzbox eingetragen habe.
Über NOIP hab ich ja meine Domain bekommen, und die zeigt auf meinen Router (Von https://www.whatismyip.com/).

In der Fritzbox hat der RPI immer die selbe Ip-Adresse mit 192.xxx.xxx.xxx

Über eine Portscan von außerhalb (https://portchecker.de/) bekomme ich die Meldung, dass der Port 443 geschlossen ist.

Kann es sein, dass ich andere Ports benutzen muss als 80 oder 443? Ich habe gelesen, dass die Fritzbox diese Ports selber nutzt

EDIT:
Muss ich die Checkbox “Internetzugriff auf die FRITZ!Box über HTTPS aktiviert” aktiviert haben? Sie war die ganze Zeit deaktiviert.

LG

Muss ich die Checkbox “Internetzugriff auf die FRITZ!Box über HTTPS aktiviert” aktiviert haben? Sie war die ganze Zeit deaktiviert

Gilt nur für die Einstellungsseite der Fritzbox.

Es kann schon sein das andere Ports verwendet werden. Das musst Du nachlesen.

Schnellste Möglichkeit ist einfach mal komplett freigeben. Siehe “Gerät für Freigaben hinzufügen” in deiner Fritzbox.

Dann siehst Du ja ob es dann funktioniert oder nicht.

Kann es sein, dass Dein Internetprovider “nur” DS-Lite bzw. CGNAT anbietet?

Das hätte zur Folge, dass Du aus dem Internet nur per IPv6 erreichbar bist (würde viele Deiner Probleme erklären).

Welchen Internetprovider hast Du denn?

Unabhängig davon: Was passiert denn, wenn Du vom Handy aus (also aus dem wilden Internet) per IPv6 zugreifst - sprich
https://[1234:5678:90ab:cdef:1234:5678:90ab:cdef]/

(und anstelle von 1234:5678… trägst Du die IPv6-Adresse vom RPI ein).

Erwartetes Ergebnis:

  • Ein paar Sicherheitswarnungen (Zertifikatsfehler) und abschließend
  • Antwort der Nextcloud - bei mir in dem Fall

Aber: Eine Antwort der Nextcloud zeigt (wie bei mir), dass die Einstellungen auf der Fritzbox (Portfreigabe/Firewall) soweit ok sind.

Meinst du das, schoetju? Ich bin bei 1&1 mit “DSL 250”

Was auch noch komisch ist:


Der IPv4-Status ist “Account temporär deaktiviert” und IPv6-Status ist “unbekannt”

Genau. Du hast somit einen DS-Lite-Anschluss.
Diese unterstützen kein IPv4 bei eingehenden Verbindungen. Eingehend geht nur per IPv6.

Entweder lässt Du dich auf IPv6 ein oder Du musst einen anderen DSL-Vertrag abschließen bzw. evtl. gibt es auch eine Vertrags- Erweiterungsoption.

Bin selber bei der Deutschen Glasfaser (gleiches Schicksal, IPv6)

Geht das ganze denn über ipv6? Hab im Internet gelesen, dass es bei DS Lite nur mit einem Proxy-Dienst klappt.

Es geht auch rein über IPv6. Kannst Du ganz einfach ausprobieren, wenn Du - wie in meiner ersten Antwort weiter unten beschrieben - http://[ipv6-adresse] aufrufst.

Das sollte direkt funktionieren…

In Deutschland unterstützen mittlerweile alle Mobilfunkanbieter IPv6. (Vor 2 Jahren war O2 noch nicht soweit, bin daher damals zur Telekom gewechselt).

Es gibt aber folgende Einschränkungen:
Wenn Du z.B. irgendwo Dich in ein freies WLAN einbuchst, kann es sein, dass dieses WLAN nur IPv4 unterstützt. Per IPv4 ist die heimische Nextcloud dann aber nicht erreichbar.

Um meine Nextcloud in Fällen wir oben wirklich immer erreichen zu können, hab ich dann doch noch einen VPS-Server gemietet, der per IPv4 erreichbar ist und dann von dort aus per 6tunnel den Datenverkehr per IPv6 weiterleitet (Das meinst Du - glaube ich - mit dem Proxy-Server?).