Zum Inhalt springen
IDO DNS Service
Alle Themen

QNAP-NAS: Let’s-Encrypt-Zertifikat automatisch abholen und erneuern

Fernzugriff · QTS, getestet auf TS-431KX

Zuletzt überarbeitet am

Für QNAP-NAS, deren Weboberfläche eine Zertifikatswarnung zeigt. Am Ende holt sich das NAS sein Zertifikat selbst ab — mit der Fassung des Skripts, die auf QTS wirklich läuft und nicht ins Leere.

Diese Anleitung gehört zu Fernzugriff von IDO DNS Service — was die Leistung kann und was sie kostet.

Warum es eine eigene Fassung braucht

QTS sieht aus wie Linux und ist es an drei Stellen nicht — an genau den dreien, die das gewöhnliche Abholskript voraussetzt:

/etc/cron.d gibt es nicht
Die Zeitsteuerung hängt an /etc/config/crontab, und eine Änderung wird erst mit crontab und einem Neustart von crond wirksam. Das ist die tückischste der drei: Das Linux-Skript legt die Datei an, meldet „Eingerichtet“ — und nichts läuft je. Auffallen würde es in 88 Tagen.
systemctl gibt es nicht
Die Weboberfläche hängt an stunnel, und der wird über sein Init-Skript neu gestartet.
curl liegt in /sbin
Und damit außerhalb des Suchpfads, den die Zeitsteuerung benutzt. Von Hand läuft es, nachts um vier nicht.

Nimmt man trotzdem das Linux-Skript, läuft es scheinbar durch: Es holt das Zertifikat, legt es nach /etc/ssl/ido — einen Ordner, den auf QTS niemand liest — und scheitert am Ende an „nginx: command not found“. Wer die Meldung übersieht, hat ein NAS, das nichts gemerkt hat.

Was Sie brauchen

  • Ein QNAP-NAS mit QTS und eingeschaltetem SSH-Zugang (Systemsteuerung → Netzwerk- und Dateidienste → Telnet/SSH), das Kennwort von admin.
  • Einen Kunden im Fernzugriff, zu dem das NAS gehört — Name und Zertifikat hängen an seinem Kundennetz. Abgeholt wird über HTTPS bei uns; das NAS braucht dafür nur Internet, keinen Tunnel.
  • Das Skript abholen-qnap.sh aus dem Kundenbereich, mit eingesetztem Zugang — es wird nur einmal angezeigt.
  • Eine Freigabe auf dem NAS, über die Sie die Datei ablegen können, etwa Public.

Legen Sie im Kundenbereich unter Fernzugriff → Kunde → Namen und Zertifikat einen Namen für das NAS an, lassen Sie das Zertifikat ausstellen und richten Sie die Abholung ein. Sie bekommen dann mehrere Fassungen zu sehen — nehmen Sie das mit der Überschrift „QNAP-NAS (QTS)“. Der Zugang steht darin schon eingesetzt; es wird nur dieses eine Mal angezeigt.

Die Datei auf das NAS bringen

Der Umweg über Windows ist die häufigste Fehlerquelle — und die mit den unverständlichsten Meldungen.

Kopieren Sie die Datei, statt ihren Inhalt einzufügen. Legen Sie sie über den Explorer auf eine Freigabe des NAS und holen Sie sie dort mit cp herüber. Ein Kopieren von Text — aus dem Browser, über das Terminal — bringt Windows-Zeilenenden mit, und die Shell scheitert dann schon beim Start:

: command not foundine 36:
: invalid option: line 37: set: -

Das liest sich wie ein Fehler im Skript, ist aber keiner: Der Wagenrücklauf springt an den Zeilenanfang und überschreibt die eigene Fehlermeldung. Zu beheben mit tr -d '\r' < datei > neu && mv neu datei.

Legen Sie sie auf eine Freigabe, nicht nach /etc — dort liegt sie sicher vor dem nächsten Firmware-Update.

Einrichten

Per SSH auf dem NAS, als admin:

mkdir -p /share/CACHEDEV1_DATA/.ido-zertifikat
cd /share/CACHEDEV1_DATA/.ido-zertifikat
cp /share/Public/abholen-qnap.sh ido-zertifikat
chmod 700 ido-zertifikat

sh ./ido-zertifikat holen

Heißt Ihr Datenordner anders als CACHEDEV1_DATA, passen Sie den Pfad an — ls /share/ zeigt ihn. Das Skript sucht ihn selbst, wenn es ihn findet.

Bleiben Sie in der SSH-Sitzung, bis Sie die Oberfläche im Browser wiedergesehen haben. Erwartet wird eine Zeile wie Neues Zertifikat eingespielt, gueltig bis … und der Rückgabewert 0.

Erst danach die Zeitsteuerung:

sh ./ido-zertifikat einrichten
grep ido-zertifikat /etc/config/crontab

Was das Skript tut — und was es lässt

Es sichert, bevor es anfasst

Die drei Dateien in /etc/stunnel/ werden erst beiseitegelegt. Danach macht das Skript einen echten TLS-Handschlag gegen Ihre eigene Oberfläche und vergleicht den Fingerabdruck. Kommt nicht das neue Zertifikat zurück, holt es die alten Dateien wieder und startet stunnel erneut.

Weshalb dieser Aufwand

Ein NAS, dessen Oberfläche nach einem Zertifikatswechsel nicht mehr antwortet, lässt sich nicht aus der Ferne wieder einfangen — die Oberfläche ist der Weg, über den man es reparieren würde. Deshalb muss das Skript sich selbst zurücknehmen können.

Es tut nichts ohne Grund

Läuft es täglich und hat sich nichts geändert, schreibt es nichts und startet nichts neu — jeder Neustart von stunnel trennt die offenen Sitzungen der Oberfläche. Ein stiller Lauf mit Rückgabewert 0 ist der Normalfall.

Es merkt, wenn es falsch liegt

Fehlen /etc/config/crontab oder /etc/init.d/stunnel.sh, bricht es ab und sagt, dass es hier nicht hingehört. Auf einem gewöhnlichen Linux-Server nehmen Sie abholen.sh.

Wenn es nicht klappt

„Das sieht nicht nach einem QNAP (QTS) aus“
Sie haben die Fassung für QNAP auf etwas anderem gestartet — oder umgekehrt auf dem NAS versehentlich abholen.sh liegen. Die QNAP-Fassung erkennen Sie daran, dass grep -c stunnel ido-zertifikat eine Zahl größer null ergibt.
„Abholung fehlgeschlagen (HTTP 401)“
Der Zugang im Skript stimmt nicht. Das passiert, wenn im Skript noch ein Platzhalter steht oder der Zugang inzwischen neu erzeugt wurde — dann gilt der alte nicht mehr, und jedes Gerät, das damit abholt, braucht das neue Skript.
Es meldet gar nichts
Das ist der Normalfall bei einem Lauf ohne Änderung. Ob wirklich abgeholt wird, sehen Sie bei uns unter Namen und Zertifikat: Dort steht, wann zuletzt abgeholt wurde. Bleibt der Zeitpunkt stehen, läuft die Zeitsteuerung nicht.
Die Oberfläche zeigt weiter eine Warnung
Rufen Sie sie unter dem Namen aus Ihrer Zone auf, nicht über die IP-Adresse — für eine IP-Adresse gilt kein Zertifikat. Und der Name muss im Netz des Kunden auflösen.

Getestet auf einer TS-431KX (QTS, ARM). Andere QNAP-Modelle mit QTS sollten sich gleich verhalten — geprüft haben wir es dort nicht. Läuft es bei Ihnen auf einem anderen Modell (oder nicht), sagen Sie uns Bescheid; dann steht es hier.

Wie es weitergeht

Ab jetzt ruft das NAS jede Nacht nach, und die Oberfläche bleibt ohne Warnung — der Beweis steht am nächsten Morgen im Kundenbereich als zweiter Abruf. Dieselbe Einrichtung für die übrigen Geräte des Kunden: OPNsense und der Windows-Server unter Remotedesktop ohne Zertifikatswarnung.

Und weil das NAS ohnehin die Daten des Kunden trägt: Mit Hybrid Backup Sync sichert es sie verschlüsselt in den Cloud-Speicher — Port 23, Verschlüsselung am NAS, eine halbe Stunde Einrichtung.

Weiter im selben Bereich

Ihr Gerät ist nicht dabei? Alle Anleitungen

Kommen Sie nicht weiter? Sehen Sie zuerst unter Häufige Fragen nach.

Steht die Antwort dort nicht, schreiben Sie uns an info@idodns.de — mit dieser Anleitung im Betreff. Was mehrfach gefragt wird, steht danach hier.