Selbstsigniertes Zertifikat mit XCA für Qnap erstellen

Einleitung:

Heute werde ich mich mit einem technischen Thema befassen, das mich schon seit geraumer Zeit beschäftigt. Ich habe bereits viele erfolglose Versuche hinter mir und das schon seit einer kleinen Ewigkeit. Es geht um die Erstellung eines selbst signierten Zertifikats für meinen QNAP. Kürzlich habe ich endlich eine hilfreiche Anleitung erhalten, wie man das Problem mithilfe von OpenSSL lösen kann. Da ich nicht so gerne Befehle über die Kommandozeile ausführe, habe ich mich weiter mit dem kostenlosen Tool XCA beschäftigt. Das Programm hat im Gegensatz zu OpenSSL eine grafische Benutzeroberfläche. Die folgende Anleitung befasst sich also mit XCA und dem QNAP-NAS unter Windows. Ich wünsche dir viel Spass und Erfolg beim Durchgehen dieser Anleitung.

Unsichere Verbindung wegen fehlendem Zertifikat
Unsichere Verbindung wegen fehlendem Zertifikat

Bevor es losgeht, werde ich dir eine kurze Einführung in das Thema bzw. die Problematik geben. SSL-Zertifikate (Secure Sockets Layer) ermöglichen sichere Verbindungen zu einem Browser mithilfe von Verschlüsselung. Moderne Browser erwarten heute, dass eine Verbindung zu einem Server sicher sein muss. Das sieht man z.B. daran, ob in einer Webadresse http:// (=unsicher) oder https:// (=sicher) steht. Hinter HTTPS steht immer ein SSL-Zertifikat. Falls eine Verbindung unsicher ist, wird der Browser mit einem Hinweis darauf aufmerksam machen, unabhängig davon, ob Sie sich im eigenen privaten Netzwerk befinden oder nicht.

Welche kostenlosen Möglichkeiten gibt es?

Ignorieren der Browsermeldung
Die einfachste Möglichkeit besteht darin, die Browsermeldung einfach zu ignorieren, indem der Browser angewiesen wird, die Verbindung zur Weboberfläche des QNAP trotzdem zu erlauben, was in einem privaten Netzwerk an sich kein Problem ist. Wer das so möchte, kann an dieser Stelle bereits aufhören zu lesen.

Let’s Encrypt Zertifikat lösen
Eine weitere Möglichkeit besteht darin, ein kostenloses Let’s Encrypt-Zertifikat zu erhalten. QNAP und Synology bieten diese Option an. Das Zertifikat ist jedoch nur 3 Monate gültig und erneuert sich automatisch. Dafür müssen allerdings bestimmte Ports freigegeben werden, was mir persönlich nicht so sympathisch ist.

Selbst signiertes Zertifikat erstellen
Eine dritte Möglichkeit besteht darin, ein selbst signiertes Zertifikat zu erstellen. Hierfür gibt es verschiedene Anwendungen, wie z.B. OpenSSL oder XCA. OpenSSL ist eine Kommandozeilen-basierte Anwendung, während XCA eine GUI hat. Letzteres ist für viele Benutzer möglicherweise einfacher zu bedienen. Ich bevorzuge XCA und werde im Folgenden darauf eingehen.

Videoanleitung

Wenn Sie lieber ein Video ansehen möchten, als diese Anleitung zu lesen, können Sie das hier tun. Aber eine kleine Warnung vorweg! Da ich kein Mikrofon habe, ist die Stimme im Video künstlich. Ausserdem sind einige Dialoge im Video nicht sichtbar, so zum Beispiel, wenn ein Passwort für die Datenbank und den Schlüssel eingeben werden muss.

Hinweis

Ich möchte darauf hinweisen, dass sich das Verfahren in der folgenden Anleitung, nur für private- oder Testzwecke eignet.

1. Download und Installation von XCA

Um das kostenlose Programm zu nutzen, muss man es zuerst von der Webseite https://hohnstaedt.de/xca/index.php/download herunterladen. Dort gibt es drei Optionen für Windows: die Store Version, die Installer-Version (msi) und die portable Version. Ich habe die portable Version für diese Anleitung verwendet.
Nach dem Herunterladen musst du das Programm an einem passenden Ort entpacken. Im entpackten Ordner gibt es eine Datei namens xca.exe, die man mit einem Doppelklick öffnen kann.

Programmoberfläche von XCA
Programmoberfläche von XCA

2. Datenbank und privaten Schlüssel erstellen

Sobald XCA gestartet ist, musst du als Erstes eine Datenbank erstellen. Das geschieht über Datei/Neue Datenbank. Im folgenden Fenster wählst du nun den Namen und Speicherort für die Datenbank. Das Fenster schliesst du mit einem Klick auf den Button Speichern. Im folgenden Dialog kannst du die Datenbank per Passwort schützen. Nach Eingabe und Bestätigung deines Passworts schliesst du den Dialog mit OK und damit wird die Datenbank erstellt.

Erstellen eines privaten Schlüssels für das spätere Root-Zertifikat
Erstellen eines privaten Schlüssels für das spätere Root-Zertifikat

Als Nächstes benötigst du einen privaten Schlüssel für das spätere Root-Zertifikat. Dazu wechselst du zum Reiter Schlüssel, wo du rechts den Button Neuer Schlüssel anklickst. Es öffnet sich ein Dialog, wo du einen Schlüsselnamen vergeben musst. Im Beispiel wurde der Name PrivaterSchlüssel vergeben. Den Schlüsseltyp (RSA) und die Schlüssellänge (2048 Bit) kannst du wie vorgegeben belassen. Über den Button Erstellen wird ein neuer Schlüssel erstellt und der Dialog schliesst sich. Der neue Schlüssel sollte sich jetzt in der Liste befinden.

3. Vorlagen für die Zertifikate importieren

Für das spätere Root-Zertifikat und Geräte-Zertifikat importierst du zunächst zwei Vorlagen. Dazu wechselst du in XCA zum Reiter Vorlagen. Dort klickst du anschliessend auf den Button Import. Im Explorer-Fenster navigierst du zum Stammverzeichnis von XCA, wo du die beiden Dateien CA.xca und TLS_server.xca gleichzeitig markierst und danach mit OK bestätigst. Den nächsten Dialog bestätigst du noch einmal mit Alle importieren. Danach sollten sich in der Liste links beider Vorlagen befinden und wir können uns jetzt mit der Zertifikatserstellung befassen.

Import der Vorlagen für die Zertifikate
Import der Vorlagen für die Zertifikate
Vorlagen wurden erfolgreich importiert
Vorlagen wurden erfolgreich importiert

4. Root-Zertifikat erstellen

Um das Root-Zertifikat zu erstellen, klickst du im Reiter Vorlagen mit der rechten Maustaste auf die Vorlage CA. Im Kontextmenü wählst du den Eintrag Zertifikat erstellen aus, woraufhin sich ein Dialog mit verschiedenen Reitern öffnet. Im Reiter Herkunft sind keine Änderungen notwendig. Unter dem Reiter Inhaber sollte unten links bereits dein privater Schlüssel ausgewählt sein, welcher du bereits unter Punkt 2 erstellt hast. Falls der Schlüssel nicht erwartungsgemäss ausgewählt ist, wählst du ihn nun aus.

Weiter geht es mit den Textfeldern oben im Reiter Inhaber. Du kannst z.B. deinen eigenen Namen im Feld Interner Name verwenden. Im Beispiel habe ich Max Mustermann gewählt. Max Mustermann wohnt in der Schweiz in Bern. Unter CountryName wird die Länderabkürzung mit 2 Buchstaben (z.B. DE, AT oder CH) vergeben. Also, für Max, CH. Für StateOrProvinceName (Bundesland, Kanton) wird Bern vergeben. Für den LocalityName (Wohnort) wird für Max wieder Bern angegeben. Mache bei dir die Angaben entsprechend deinem Wohnort. Die nächsten beiden Felder habe ich im Beispiel leer gelassen. Unter CommonName kann wieder der eigene Name eingesetzt werden, also hier wieder Max Mustermann. Das Feld emailAddress bleibt im Beispiel leer.

Lokale Angaben im Reiter Inhaber für das Root-Zertifikat
Lokale Angaben im Reiter Inhaber für das Root-Zertifikat

Unter dem Reiter Erweiterungen kannst du die Gültigkeitsdauer des Root-Zertifikats anpassen. Falls du das machen willst, betätige die Änderung, indem du rechts auf den Button übernehmen klickst. Im Beispiel wird die Gültigkeit von 10 Jahren belassen. Unter den anderen den Reitern sind keine weiteren Änderungen nötig. Schliesse den Dialog mit OK, damit wird das Root-Zertifikat erstellt. Du kannst das überprüfen, indem du zum Reiter Zertifikate wechselst. In der Liste sollte sich nun das Root-Zertifikat befinden.

Gültigkeitsdauer anpassen im Reiter Erweiterungen für das Root-Zertifikat
Gültigkeitsdauer anpassen im Reiter Erweiterungen für das Root-Zertifikat

5. Geräte-Zertifikat und Geräte-Schlüssel erstellen

Für die Erstellung des Geräte-Zertifikats wechselst du wieder zum Reiter Vorlagen und klickst dort mit der rechten Maustaste auf die Vorlage TLS_server und wählst im Kontextmenü Zertifikat erstellen. Im Dialog aktivierst du nun im Reiter Herkunft unter dem Abschnitt Unterschreiben die Option Verwende dieses Zertifikat zum Unterschreiben und kontrollierst, ob sich das vorher erstellte Root-Zertifikat in der Liste befindet und ausgewählt ist.
Weiter geht es jetzt im Reiter Inhaber. Dort vergibst du als interner Name, am besten den Gerätenamen deines Geräts. Bei mir ist das qnap. Unter CommonName wird der DNS-Name des Gerätes vergeben, der bei mir wieder qnap lautet. Die anderen Felder werden analog zum Root-Zertifikat ausgefüllt. Also, CountryName=CH, StateOrProvinceName=Bern und LocalityName=Bern. Mache bei dir wieder die Angaben entsprechend deinem Wohnort.

Mit dem Root-Zertifikat wird im Reiter Herkunft das Geräte-Zertifikat unterschrieben
Mit dem Root-Zertifikat wird im Reiter Herkunft das Geräte-Zertifikat unterschrieben

Für die Erstellung des Geräte-Zertifikats wird auch ein Schlüssel benötigt. Diesen erstellst du unten rechts mit einem Klick auf den Button Erstelle einen neuen Schlüssel. Die Angaben Name=qnap (Name des Zertifikats), Schlüsseltyp=RSA und Schlüssellänge=2048 Bit werden so belassen und mit einem Klick auf Erstellen wird der Geräte-Schlüssel erstellt.

Lokale Angaben im Reiter Inhaber für das Geräte-Zertifikat plus Erstellung des Geräte-Schlüssel
Lokale Angaben im Reiter Inhaber für das Geräte-Zertifikat plus Erstellung des Geräte-Schlüssel

Nun wechselst du zum Reiter Erweiterungen. Dort wird im Beispiel unter dem Abschnitt Zeitspanne die Gültigkeit entsprechend dem Root-Zertifikat auf 10 Jahre gesetzt. Ganz wichtig dabei ist, dass für die Anpassung rechts auf den Button Übernehmen geklickt wird.

Im Reiter Erweiterungen des Geräte-Zertifikats können die Geräte-IP und alternative DNS-Namen angeben werden.
Im Reiter Erweiterungen des Geräte-Zertifikats können die Geräte-IP und alternative DNS-Namen angeben werden.

Im Feld X509v3 Subject Alternative Name sehen wir, dass der DNS-Name, der vorher unter CommonName angegeben wurde, bereits übernommen wurde. Weitere DNS-Namen und auch die Geräte-IP können übernommen werden, indem du rechts auf den Button Bearbeiten klickst. Um die Geräte-IP anzugeben, klickst du im Dialog zunächst den Button Hinzufügen. Unter der Spalte Typ wählst du zunächst IP aus der Liste und vergibst unter Inhalt deine Geräte-IP, also die IP, mit der du auf die Weboberfläche deines NAS gelangst. Beispielsweise 192.168.1.100.
Falls vorhanden, können auch noch weitere DNS-Namen wie etwa qnap.meinedomain.com angegeben werden. Dazu klickst du wiederum auf Hinzufügen und wählst als Typ DNS und gibst im Feld im Inhalt den gewünschten DNS-Namen ein. Wenn du alle Angaben gemacht hast, schliesst du den Dialog mit Übernehmen. Nun hast du alle nötigen Angaben gemacht und bestätigst unten mit OK.
Es ist gut möglich, dass jetzt eine Meldung erscheint, die uns darauf hinweist, dass die Gültigkeitsdauer des Geräte-Zertifikats länger ist als die vom Root-Zertifikat. Der Grund liegt darin, weil beide Zertifikate (wie im Beispiel) eine Gültigkeitsdauer von 10 Jahren haben, aber das Gerätezertifikat zeitlich später erstellt wird. Somit wäre das Geräte-Zertifikat länger gültig, was aber nicht sein sollte. Falls bei dir dieser Hinweis erscheint, klickst du links auf den Button Datum anpassen und fortfahren. Mit oder ohne Meldung wird der Dialog geschlossen und das Geräte-Zertifikat wird erstellt.

Meldung, dass das Geräte-Zertifikat länger gültig als das Root-Zertifikat ist, was hier gleich korrigiert werden kann
Meldung, dass das Geräte-Zertifikat länger gültig als das Root-Zertifikat ist, was hier gleich korrigiert werden kann
Root-Zertifikat und Geräte-Zertifikat sind fertig erstellt
Root-Zertifikat und Geräte-Zertifikat sind fertig erstellt

6. Schlüssel und Zertifikate exportieren

Du hast jetzt zwei Schlüssel und zwei Zertifikate in den Reitern Private Schlüssel und Zertifikate. Das Geräte-Zertifikat ist unter dem Root-Zertifikat versteckt. Du kannst es sehen, wenn du auf den Pfeil links klickst. Um die Zertifikate und Schlüssel zu exportieren, musst du sie in ein bestimmtes Format umwandeln. Fang mit dem Root-Zertifikat an. Klicke es mit der rechten Maustaste an und wähle im Kontextmenü Export/Datei. Lass den Namen so, wie er ist. Mit dem Button mit den drei Punkten kannst du einen Speicherort aussuchen. Nimm einen, den du später leicht wiederfindest. Das Exportformat soll PEM(*.crt) sein. Dann klicke auf OK.
Das Geräte-Zertifikat exportierst du genauso wie das Root-Zertifikat. Also derselbe Speicherort und dasselbe Format.

Um die beiden Schlüssel zu exportieren, musst du im Reiter Private Schlüssel das gleiche Verfahren wie für die Zertifikate anwenden. Am besten speicherst du die Schlüssel im selben Ordner wie die Zertifikate. Für den privaten Schlüssel des Root-Zertifikats wählst du das Exportformat PKCS #8 encrypted (*.pk8) und gibst ein Passwort ein, wenn du dazu aufgefordert wirst. Für den Geräte-Schlüssel (qnap) wählst du das Format PKCS #8 (*.pk8), das nicht verschlüsselt ist. Damit sind die Arbeiten unter XCA fertig.

Der Private-Schlüssel wird im PKCS #8 encrypted exportiert
Geräte-Schlüssel wird im PKCS #8 encrypted exportiert
Wichtig! Auf das richtige Format achten. Für den Gerätes-Schlüssel nur das PKCS #8 verwenden und nicht das PKCS #8 encrypted
Wichtig! Auf das richtige Format achten. Nur das PKCS #8 verwenden und nicht das PKCS #8 encrypted

7. Root-Zertifikat unter Windows installieren.

Öffne im Explorer den Ordner, in dem du deine Dateien exportiert hast, und starte die Zertifikatsinstallation mit einem Doppelklick auf das Root-Zertifikat.

Die vier exportierten Dateien befinden sich nun in einem geeigneten Verzeichnis
Die vier exportierten Dateien befinden sich nun in einem geeigneten Verzeichnis

Es erscheint ein Fenster, in dem du sehen kannst, für wen oder von wem das Zertifikat ausgestellt wurde und wie lange es gültig ist.
Klicke dort auf Zertifikat installieren und es öffnet sich ein weiteres Fenster, in dem du den Speicherort angeben kannst. Wenn das Zertifikat für alle Benutzer dieses Computers gelten soll, wähle die Option Lokaler Computer aus, sonst lass es so wie es ist. Ich habe im Beispiel die Option Lokaler Computer gewählt. Klicke dann auf Weiter. Wähle die Option Alle Zertifikate in folgendem Speicher speichern aus und klicke auf Durchsuchen. Wähle im nächsten Fenster den Ordner Vertrauenswürdige Stammzertifizierungsstellen aus und klicke auf OK.
Im Hauptfenster klicke auf Weiter und dann auf Fertig stellen, um das Root-Zertifikat zu installieren. Wenn noch ein Fenster offen ist, schliesse es mit OK.

Die Installation des Root-Zertifikats wird mit einem Doppelklick gestartet
Die Installation des Root-Zertifikats wird mit einem Doppelklick gestartet
Angabe des Zertifikatsspeicher für das Root-Zertifikat
Angabe des Zertifikatsspeicher für das Root-Zertifikat
Das Root-Zertifikat wird in Vertrauenswürdige Stammzertifizierungsstellen abgelegt
Das Root-Zertifikat wird in Vertrauenswürdige Stammzertifizierungsstellen abgelegt

8. Überprüfen des Root-Zertifikats am Speicherort

Um zu sehen, ob du das Zertifikat richtig installiert hast, kannst du folgende Schritte ausführen: Öffne das Windows-Startmenü und tippe «Zert» ein. Wähle dann in der Liste die Option Computerzertifikate verwalten aus. Es öffnet sich ein Fenster, in dem du zum Ordner Vertrauenswürdige Stammzertifizierungsstellen/Zertifikate navigieren kannst. Dort solltest du das Zertifikat finden, eventuell musst du etwas nach unten scrollen.

Zur Überprüfung wird Computerzertifikate verwalten gestartet
Zur Überprüfung wird Computerzertifikate verwalten gestartet
Das Root-Zertifikat wurde an der richtigen Stelle installiert
Das Root-Zertifikat wurde an der richtigen Stelle installiert

9. Https im Qnap aktivieren

Da ich schon länger mit verschiedenen Zertifikaten im QNAP arbeite, bin ich mir nicht sicher, ob das jetzt ganz richtig ist, was jetzt folgt. Ich empfehle dennoch, sich an diese Vorgehensweise zu halten.

Öffne die Weboberfläche deines QNAP und gehe zur Systemsteuerung/Allgemeine Einstellungen. Dort aktiviere die Option Sichere Verbindung (HTTPS) aktivieren. Bei TLS-Versionskompatibilität wähle 1.2 oder höher aus. Die Option Starke Cipher-Suites aktivieren kannst du deaktiviert lassen. Als Portnummer habe ich 443 angegeben. Wichtig: Aktiviere nicht die Option, nur eine Sichere Verbindung (HTTPS) herstellen, bevor du dein Zertifikat eingerichtet hast. Sonst könntest du dich aus deinem QNAP ausschliessen, wenn etwas schiefgeht. Wenn du etwas geändert hast, klicke auf Übernehmen, um die Einstellungen zu speichern.

Https Einstellungen in der Systemsteuerung vom Qnap
Https Einstellungen in der Systemsteuerung vom Qnap

10. Geräte-Zertifikat und Geräte-Schlüssel importieren

Der letzte Schritt ist, das Geräte-Zertifikat und den Geräte-Schlüssel auf deinen QNAP zu importieren. Gehe dazu in der QNAP-Systemsteuerung/Sicherheit zum Reiter SSL-Zertifikat & Privater Schlüssel und klicke dort auf Zertifikat ersetzen. Im nächsten Dialog schaue, ob in der Liste Zertifikat importieren steht. Ändere das entsprechend, falls das nicht der Fall sein sollte, und klicke dann auf Weiter. Jetzt kannst du das Geräte-Zertifikat und den Geräte-Schlüssel auswählen, indem du jeweils auf Durchsuchen klickst, zum Speicherort wechselst und dort die passenden Dateien auswählst. Im Beispiel sind das die Dateien qnap.crt (Zertifikat) und qnap.pk8 (Schlüssel). Dann kannst du auf den vorher ausgegrauten Button Übernehmen klicken. Die Übernahme dauert ein paar Sekunden.

Das Geräte-Zertifikat wird im Qnap unter Sicherheit/SLL-Zertifikat & Privater Schlüssel installiert
Das Geräte-Zertifikat wird im Qnap unter Sicherheit/SLL-Zertifikat & Privater Schlüssel installiert
Prüfen, dass Zertifikat importieren im Dropdown Feld ausgewählt ist
Prüfen, dass Zertifikat importieren im Dropdown Feld ausgewählt ist
Das Geräte-Zertifikat und der Geräte-Schlüssel werden über die entsprechenden Felder hochgeladen
Das Geräte-Zertifikat und der Geräte-Schlüssel werden über die entsprechenden Felder hochgeladen

wahrscheinlich etwas mit den Exportformaten nicht. Überprüfe das, vor allem, ob du nicht das PKCS #8 encrypted (*.pk8) für den Geräte-Schlüssel erwischt hast.

Um zu testen, ob alles funktioniert hat, starte deinen Browser neu. Und teste mit deinen Angaben, ob eine sichere Verbindung zu deinem NAS möglich ist. Bei mir teste ich das mit https://qnap und https://10.0.0.10. Wenn du keine Meldung vom Browser bekommst oder dass HTTPS in der Adressleiste durchgestrichen ist, hast du deine Zertifikate erfolgreich installiert. Glückwunsch!

Der Browser teilt uns mit, dass die Verbindung sicher ist
Der Browser teilt uns mit, dass die Verbindung sicher ist

Schlusswort

Das Thema ist echt kompliziert und man kann sich fragen, ob es sich lohnt, so viel Mühe im privaten LAN zu machen, nur um die Browsermeldung wegzukriegen. Da ich nur über VPN auf mein QNAP von aussen zugreifen kann, glaube ich nicht, dass es mit den Zertifikaten viel sicherer wird. Trotzdem hat es sich für mich gelohnt, weil ich wieder was dazugelernt habe.

Ich hoffe, du konntest mit dieser Anleitung etwas anfangen …

Hinterlassen Sie einen Kommentar

DSGVO Cookie-Einwilligung mit Real Cookie Banner