Zertifikatproblem mit Raspberry Pi3 und Nextcloud

svr2009

Cadet 4th Year
Registriert
März 2015
Beiträge
117
Hallo, ich habe ein Problem und hoffe ihr könnt mir helfen.
Ich habe eine Nextcloud für ein Projekt mit einem Raspberry Pi3 aufgesetzt. Installiert sind:

Raspbian Stretch
Nextcloud
PHP7
Apache2
MySQL
PHPmyAdmin

Lokal läuft alles super. Teil des Projekts ist die Erreichbarkeit von außen, das hat ja eine Cloud an sich. Dafür muss man ja DynDNS einrichten, 443 und 80 auf dem Router freischalten und ein Zertifikat installieren.
Diese Punkte habe ich wie in dieser Anleitung gemacht:
Die eigene Cloud mit dem Raspberry Pi und Nextcloud - canox.net

Jetzt das Problem:

Wenn ich die erstellte Adresse suche, erscheint dieses Fenster:

Dropbox - 6.JPG

Wenn man man dann auf Hinzufügen klickt, passiert nichts mehr und es kommt ein Connection Fehler.

Auf spdns gibt es im Account eine Warnung. Keine Ahnung ob das was bedeutet:

Dropbox - spdns warnung.png

Wäre nett wenn mir jemand helfen würde :)
 
In deinem ersten screenshot steht exakt was du tun musst: die Nextcloud Konfiguration berichtigen.
Auch in deinem zweiten Screenshot steht exakt was du tun musst, Zeile 2 von 19:20:31.
 
Hast du die Meldung gelesen?

Du musst deine Domain (DynDNS) in der Nextcloud Config, wie in der Meldung beschrieben, einfügen.
Wenn du in der Suchmaschine deiner Wahl "nextcloud trusted domains" eingibst, dann ist der erste Treffer die Dokumentation von Nextcloud, dort findest du ausführlichere Hinweise.
Mach das erstmal, und meld dich falls das oder etwas anderes nicht klappt.
 
Hallo,

was helfen müsste ist, wenn Du mit dem Terminal die confic.inc.php öffnest und
dann deine DynDNS Adresse zu den Trusted Domains hinzufügst.

Was es jetzt mit der SPDNS Warnung auf sich hat, kann ich Dir auch nicht sagen ^^

EDIT: Da war mein Vorredner wohl schneller :D

Grüße,
leetex
 
Hat man das nicht schon bei der LetsEncrypt Einrichtung am Ende gemacht? Da musste ich ja irgendwie meine dns Adresse eingeben: z.B. xxxxx.spdns.de.

PS: Dann versuche ich das mal gleich nach der Schule :)
 
Zuletzt bearbeitet:
Hab eben mal die Anleitung, die du benutzt hast überflogen.
Die will ziemlich viel abdecken, bleibt aber an wichtigen Stellen oberflächlich oder sogar falsch.

1. Bei der Nextcloudeinrichtung fehlt das Kapitel "Absichern" (der Zugriffsrechte zb).

2.Den spdyn-Updater sollte man,w enn der schon in nem Userordner angelegt wird, nicht in die crontab von root schreiben.

3. Der Letsencrypt-Client wird von Github installiert, somit hat man nur die Variante die mit root-Rechten ausgeführt werden kann, was meiner Meinung nach, völlig unnötig ist, zumal als Methode webroot gewählt wird.
Dazu kommt, dass dann im Nextcloudverzeichnis ein Ordner .well-known vorhanden sein muss, weder wird das beschrieben, noch darauf hingewiesen, dass Nextcloud bei einem Update abbricht, weil es mit diesem Fremdordner nichts anfangen.
Empfehlenswert wäre die Nutzung von "Alias" des Apache um das Webroot außerhalb des Nextcloudverzeichnisses verfügbar zu machen.

4. Nextcloud Zugriff auf den root der Datenbank geben? Schlechte Idee.

Im Detail finden sich da sicher noch weitere fehlerhafte/fragwürdige Dinge.
 
ChristianSL schrieb:
Hab eben mal die Anleitung, die du benutzt hast überflogen.
Die will ziemlich viel abdecken, bleibt aber an wichtigen Stellen oberflächlich oder sogar falsch.

1. Bei der Nextcloudeinrichtung fehlt das Kapitel "Absichern" (der Zugriffsrechte zb).

2.Den spdyn-Updater sollte man,w enn der schon in nem Userordner angelegt wird, nicht in die crontab von root schreiben.

3. Der Letsencrypt-Client wird von Github installiert, somit hat man nur die Variante die mit root-Rechten ausgeführt werden kann, was meiner Meinung nach, völlig unnötig ist, zumal als Methode webroot gewählt wird.
Dazu kommt, dass dann im Nextcloudverzeichnis ein Ordner .well-known vorhanden sein muss, weder wird das beschrieben, noch darauf hingewiesen, dass Nextcloud bei einem Update abbricht, weil es mit diesem Fremdordner nichts anfangen.
Empfehlenswert wäre die Nutzung von "Alias" des Apache um das Webroot außerhalb des Nextcloudverzeichnisses verfügbar zu machen.

4. Nextcloud Zugriff auf den root der Datenbank geben? Schlechte Idee.

Im Detail finden sich da sicher noch weitere fehlerhafte/fragwürdige Dinge.

Also Nextcloud und alles andere habe ich selber ohne Root Ordner etc. eingerichtet. Nur das mit dem Zertifikat und DNS habe ich von dort. Kannst du mir das bitte richtig und reproduzierbar erklären? Das wäre ein große große Hilfe.
 
Für das spdyn-Tool führst du die crontab als entsprechender Benutzer, ohne sudo davor, aus.

Du kannst der certbot/letsencrypt direkt aus den Debianquellen installieren, dann benötigt der keine root-Rechte.
Code:
sudo apt install certbot

Bei mir läuft Letsencrypt/certbot mit einem eigenen User: certbot.
Der hat schreibrechte im Verzeichnis /etc/letsencrypt um die Zertifikate ablegen zu können und benutzt das Verzeichnis /srv/certbot als webroot für das Challengefile von Letsencrypt.

Die einzelnen Schnipsel sehen dann wie folgt aus:

Zertifikatsupdate als Benutzer certbot (muss dann entsprechend in seiner crontab eingepflegt werden):
Code:
letsencrypt certonly --no-self-upgrade --keep-until-expiring --text --agree-tos \
--logs-dir /srv/certbot/logs \
-m mail@domain.tld \
--rsa-key-size 4096 \
--webroot -w /srv/certbot/ \
-d domain.tld

Apache2 DocumentRoot in zB /etc/apache2/sites-available/000-default.conf
Code:
...
Alias "/.well-known/acme-challenge" "/srv/certbot/.well-known/acme-challenge"
<Directory "/srv/certbot">
        Require all granted
</Directory>
...

Damit werden dann Anfragen an domain.tld/.well-known/acme-challenge intern in den Ordner /srv/certbot statt /var/www/nextcloud umgeleitet.
 
ChristianSL schrieb:
Für das spdyn-Tool führst du die crontab als entsprechender Benutzer, ohne sudo davor, aus.

Du kannst der certbot/letsencrypt direkt aus den Debianquellen installieren, dann benötigt der keine root-Rechte.
Code:
sudo apt install certbot

Bei mir läuft Letsencrypt/certbot mit einem eigenen User: certbot.
Der hat schreibrechte im Verzeichnis /etc/letsencrypt um die Zertifikate ablegen zu können und benutzt das Verzeichnis /srv/certbot als webroot für das Challengefile von Letsencrypt.

Die einzelnen Schnipsel sehen dann wie folgt aus:

Zertifikatsupdate als Benutzer certbot (muss dann entsprechend in seiner crontab eingepflegt werden):
Code:
letsencrypt certonly --no-self-upgrade --keep-until-expiring --text --agree-tos \
--logs-dir /srv/certbot/logs \
-m mail@domain.tld \
--rsa-key-size 4096 \
--webroot -w /srv/certbot/ \
-d domain.tld

Apache2 DocumentRoot in zB /etc/apache2/sites-available/000-default.conf
Code:
...
Alias "/.well-known/acme-challenge" "/srv/certbot/.well-known/acme-challenge"
<Directory "/srv/certbot">
        Require all granted
</Directory>
...

Damit werden dann Anfragen an domain.tld/.well-known/acme-challenge intern in den Ordner /srv/certbot statt /var/www/nextcloud umgeleitet.


Das sieht echt super aus, Danke :) Nur habe ich ja wie schon oben beschrieben, schon Lets Encrypt drin. Kann ich das irgendwie alles davon entfernen ohne etwas kaputt zu machen?
 
Wenn du das, wie in der Anleitung beschrieben, nur von Github heruntergeladen und nach /etc/letsencrypt kopiert hast, dann kannst du die Datei letsencrypt-auto darin einfach löschen.

Der Inhalt von /etc/letsencrypt sollte so aussehen (sofern du schon ein Zertifikat geholt hast):
Code:
ls /etc/letsencrypt/
accounts  archive  csr  keys  live  post-hook.d  pre-hook.d  renewal  renew-hook.d
 
Irgendwie komme ich nicht weiter. Ich habe es nach der Anleitung von @ChristianSL nicht hinbekommen.
Dann habe ich alles was mit spdns (spdyn), letsencrypt und certbot zu tun hat entfernt, damit ich einen frischen start machen kann.

DynDNS habe ich jetzt mit no-ip versucht hinzubekommen und nach dieser Anleitung:
https://www.einplatinencomputer.com/raspberry-pi-dyndns-einrichten/

Es scheint zu klappen, da ich auf der No-IP Seite die IP abfragen kann.

Dann habe ich versucht ein Zertifikat zu erstellen, und dies nach dieser Anleitung:
https://jankarres.de/2015/12/lets-encrypt-kostenloses-ssltls-zertifikat-erstellen/

Jetzt hänge ich bei Step 4 fest, da folgendes passiert ist:

Error while running apache2ctl configtest.
Action 'configtest' failed.
The Apache error log may have more information.

apache2: Syntax error on line 225 of /etc/apache2/apache2.conf: Syntax error on line 38 of /etc/apache2/sites-enabled/000-default-le-ssl.conf: Could not open configuration file /etc/letsencrypt/options-ssl-apache.conf: No such file or directory


How would you like to authenticate with the ACME CA?
-------------------------------------------------------------------------------
1: Apache Web Server plugin - Beta (apache) [Misconfigured]
2: Spin up a temporary webserver (standalone)
3: Place files in webroot directory (webroot)
-------------------------------------------------------------------------------
Select the appropriate number [1-3] then [enter] (press 'c' to cancel): 3

Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel):*******@freenet.de

-------------------------------------------------------------------------------
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf. You must agree
in order to register with the ACME server at
https://acme-v01.api.letsencrypt.org/directory
-------------------------------------------------------------------------------
(A)gree/(C)ancel: a

-------------------------------------------------------------------------------
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about EFF and
our work to encrypt the web, protect its users and defend digital rights.
-------------------------------------------------------------------------------
(Y)es/(N)o: n
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for www.********.ddns.net
http-01 challenge for ********.ddns.net

Select the webroot for www.******.ddns.net:
-------------------------------------------------------------------------------
1: Enter a new webroot
-------------------------------------------------------------------------------
Press 1 [enter] to confirm the selection (press 'c' to cancel): 1
Input the webroot for www.******.ddns.net: (Enter 'c' to cancel):/var/www/nextcloud/

Select the webroot for ******.ddns.net:
-------------------------------------------------------------------------------
1: Enter a new webroot
2: /var/www/nextcloud
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2

Ich denke der Webroot den ich eingegeben habe ist richtig, oder?

Waiting for verification...
Cleaning up challenges
Failed authorization procedure. www.******.ddns.net (http-01): urn:acme:error:connection :: The server could not connect to the client to verify the domain :: DNS problem: NXDOMAIN looking up A for www.******.ddns.net, ******.ddns.net (http-01): urn:acme:error:connection :: The server could not connect to the client to verify the domain :: Could not connect to ******.ddns.net

IMPORTANT NOTES:
- The following errors were reported by the server:

Domain: www.******.ddns.net
Type: connection
Detail: DNS problem: NXDOMAIN looking up A for
www.******.ddns.net

Domain: ******d.ddns.net
Type: connection
Detail: Could not connect to ******.ddns.net

To fix these errors, please make sure that your domain name was
entered correctly and the DNS A 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.
- Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.
root@raspberrypi:/opt/letsencrypt#


Aber eigentlich müsste ich ja auch ohne Zertifikat auf meine Cloud zugreifen können, oder? Das klappt auch nicht, obwohl in der Fritzbox Port 80 und 443 frei sind für den Pi.
Ergänzung ()

Ok, habe apache2 geschrottet. Danach jedoch komplett gelöscht, neu installiert und Seite in "trustet domains" eingetragen.
Jetzt komme ich endlich rauf, jedoch ohne SSL. Wenigstens....
 
Du hattest da einen Fehler in deiner Apache2 Konfiguration, wie du oben ja auch geschieben hast. Offenbar war da ein Verweis auf eine Datei, die du vorher gelöscht hast.
Bitte an solche Probleme nicht via try'n'error ran gehen, sondern durch die Meldungen und Hinweise arbeiten.

SSL:
Code:
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for www.********.ddns.net
http-01 challenge for ********.ddns.net

Warum willst du ein Zertifikat für www. haben? Entweder gehört dir die nicht, oder du hast sie im Aapche2 nicht konfiguriert. Zumindest scheitert dein Request daran.

No-IP würde ich nicht empfehlen,da man dort für den free-Account alle 3 Wochen einen Bestätigungslink + Captcha klicken muss, das nervt auf Dauer. Ich war da früher auch mal, bin aber zu afraid.org gewechselt.
 
So, habe alles hinbekommen. SSL und Port 443 waren in den Apacheconfigs nicht drin sowie paar Pfade für die Zertifikate.
Zertifikat geht jetzt auch :)

Das mit den 3 Wochen ist egal, morgen wird präsentiert und weg damit.

Und ja, www.******.ddns.net geht nicht, da ich die Seite ohne www registriert habe.

Danke für die Hilfe :)
 
Zurück
Oben