Nextbox: Herunterfahren und Zertifikate

Hallo,

ich bin nun glücklich im Besitz meiner Nextbox.
Verwirrt hat mich spontan, dass ich nirgends eine Info finde, wie ich sie - wenn mal erforderlich - herunterfahre. Bisher kam mir nur als Idee, mich per SSH anzumelden und dann

sudo halt

auszuführen. Ist das wirklich der einzige Weg?

Eine weitere Frage, die etwas tiefer ins Detail geht: Ich möchte die Nextbox eigentlich nicht aus dem Internet erreichbar machen. Dennoch würde ich auch im eigenen Netz TLS-Verschlüsselung nutzen - ein Zertifikat habe ich schon. Wo muss ich das (per SSH) hinkopieren, wo muss eventuell noch eine Einstellung geändert werden und ist das ggf. bei jedem Update erneut notwendig?

Vielen Dank!

NC-Fan

Hey NC-Fan,

Ja, momentan ist das noch der einzige Weg. Aber fürs nächste Release ist das bereits geplant: add reboot and shutdown to api · Issue #6 · Nitrokey/nextbox-daemon · GitHub

Hui, das ist aktuell nicht wirklich supported. Ungefähr folgendes müsste man grob machen:
Die apache2 config liegt hier: /srv/apache2, dort müsste man entsprechenden Eintrag in sites-available machen (file-template hier ganz oben: nextbox-daemon/certificates.py at main · Nitrokey/nextbox-daemon · GitHub) … dann aktivieren mit verlinken in sites-enabled

Das Zertifikat + Keyfile kann dann beliebig abgelegt werden, solange der angegebene Pfad passt in der angelegten Apache2-config.

Habe es mal hier als todo für die dokumentation hinzugefügt: NextBox: Missing documentation · Issue #38 · Nitrokey/nitrokey-documentation · GitHub weil die “Lösung” (hier: Allow using own TLS certificate · Issue #20 · Nitrokey/nextbox-daemon · GitHub) aktuell noch niedrige Priorität hat.

Gruß
Meissner

2 Likes

Wow, die Antwort war ja fix. Danke dafür.
Welcher Ablageort für ein Zertifikat übersteht denn sicher ein Update?

/srv ist auf der internen Festplatte, entweder direkt in /srv oder dort ein Verzeichnis anlegen, dann sollte das problemlos überleben…

Vorsicht das ist ungetestet, gerne hier Feedback geben wie das funktioniert hat.

Wenn ich am Wochenende dazu komme, werde ich berichten.

Wochenendwetter war zu schön - aber mittlerweile musste ich auch abends mal rumprobieren.

Ich habe das Template aus der Python-Datei übernommen und nur meine eigenen Zertifikatspfade eingefügt,und die Datei in “/srv/apache2/sites-available” abgespeichert.
Anschließend den vorhandenen Link in “sites-enabled” gelöscht und dann einen auf meine Datei erstellt.

Dann noch entsprechende Links von “mods-enabled” auf die Dateien ssl.conf, ssl.load und socache_shmcb.load in “mods-available” verlinkt aber

sudo docker exec nextbox-compose_app_1 apachectl configtest (oder ebenso: sudo docker exec nextbox-compose_app_1 apachectl graceful) melden nun folgenden Fehler:

SSLCertificateFile: file ‘/srv/own-ca/certificate.crt’ does not exist or is empty

Nun, die Datei ist da abgelegt für alle lesbar und enthält ein korrektes Zertifikat. Aktuell stehe ich auf dem Schlauch - vielleicht wird es morgen besser.

Update: Es lag daran, dass der Docker-Container die Zertifikatsdateien nicht lesen kann. Jetzt habe ich sie in “/srv/letsencrypt” abgelegt und in der Datei die Pfade als “/etc/letsencrypt” angegeben.
Jetzt meldet er folgendes, das ich mir aber erst morgen weiter ansehen werde:

apache2: Could not reliably determine the server’s fully qualified domain name, using 172.18.238.5. Set the ‘ServerName’ directive globally to suppress this message

Ach ja, noch eine niedrigpriore Idee: Ich benenne die Rechner in meinem Netz ja nach eigenem Schema. So etwas gefällt Nextcloud nicht und es meldet:

Zugriff über eine nicht vertrauenswürdige Domain

Bitte kontaktiere Deinen Administrator. Wenn Du Administrator bist, bearbeite die „trusted_domains“-Einstellung in config/config.php. Siehe Beispiel in config/config.sample.php.

Wenn eigenen Zertifikate eingebaut werden, könnte auch die Anpassungsmöglichkeit aktiviert werden.
(Ich muss nur mal schauen, ob eine Aktualisierung meinerseits ein Update übersteht.)

1 Like

Uha, ja natürlich, hab ich leider nicht dran gedacht, der Vorteil wenn es in /srv/letsencrypt ist dass es auch mit gebackuped wird.

Das sind die TrustedDomains (Installation wizard — Nextcloud latest Administration Manual latest documentation), diese sind ein Sicherheitsfeature von Nextcloud, die werden voll verwaltet vom NextBox Daemon, man kann aber eine einfach über die “Static Domain” Konfiguration hinzufügen, da werden aber aktuell nur “regelkonforme” Internetdomains gehen, hab das mal als need hier vermerkt: Implement other TLS certificate deployments · Issue #20 · Nitrokey/nextbox-daemon · GitHub (dass man da beliebige eingeben möchte)

So, jetzt läufts.
Ich musste in “/srv/apache2/apache2.conf” nur noch die Zeile

ServerName meinServerName

ergänzen.

Ja und in der config.php von nextcloud die trusted domain. Aber das ist ja unabängig vom eigenen Zertifikat.