Wilhelm Faber

IT Projekte, Expertise, Solutions Architect, Street-Photograph aus Ratingen

SSL Zertifikat

Eigene SSL-Zertifikate im Heimnetz: nas.stargate & fotos.stargate auf dem Synology NAS...

| Keine Kommentare

Wer zu Hause ein Synology NAS betreibt, kennt das: Man ruft https://192.168.178.20:5001 auf, und der Browser warnt vor einer „nicht sicheren Verbindung“. Schöner wäre https://nas.stargate oder https://fotos.stargate, mit Schloss-Symbol und ohne Warnung. Genau das richten wir in diesem Artikel ein:

  • eine eigene kleine Zertifizierungsstelle (CA) fürs Heimnetz
  • ein Server-Zertifikat für unsere Adressen
  • die Einrichtung auf dem Synology NAS
  • die Installation auf Windows, macOS, Linux, iPhone und Android

Das Prinzip in einer Minute

Öffentliche Zertifikate, z. B. von Let’s Encrypt, gibt es nur für Domains, die im Internet existieren. .stargate gibt es dort nicht. Also werden wir selbst zur Zertifizierungsstelle:

  1. Root-CA erstellen: Wir erzeugen ein Stammzertifikat und bringen allen Geräten zu Hause bei, ihm zu vertrauen.
  2. Server-Zertifikat ausstellen: Mit der Root-CA signieren wir ein Zertifikat für nas.stargate und fotos.stargate.
  3. Zertifikat aufs NAS: Server-Zertifikat und privaten Schlüssel im DSM importieren und den Diensten zuweisen.
  4. Root-CA auf die Geräte: Jeder Rechner und jedes Handy bekommt das Stammzertifikat. Danach vertraut der Browser allen Zertifikaten, die wir damit signieren.

Der Vorteil: Das Stammzertifikat muss nur einmal pro Gerät installiert werden. Kommen später weitere Dienste dazu, z. B. router.stargate oder homeassistant.stargate, stellt man einfach ein neues Server-Zertifikat aus. An den Geräten ändert sich nichts.

Voraussetzungen

  • Ein Synology NAS mit DSM 7.x. Die Menüpfade in diesem Artikel beziehen sich auf DSM 7.2.
  • OpenSSL auf einem Rechner:
    • Linux: in der Regel vorinstalliert
    • macOS: brew install openssl (das mitgelieferte LibreSSL kennt nicht alle nötigen Optionen)
    • Windows: über „Git for Windows“ (Git Bash) oder WSL
  • Eine feste IP-Adresse für das NAS, in diesem Beispiel 192.168.178.20.

Schritt 0: Die Namen im Netzwerk auflösbar machen

Das Zertifikat sorgt für Verschlüsselung und Echtheitsprüfung. Damit nas.stargate überhaupt beim NAS ankommt, braucht es aber einen DNS-Eintrag. Dafür gibt es drei gängige Wege:

  • Pi-hole oder AdGuard Home: Unter „Local DNS Records“ bzw. „DNS-Umschreibungen“ zwei Einträge anlegen:
    • nas.stargate → 192.168.178.20
    • fotos.stargate → 192.168.178.20
  • Synology DNS Server:
    1. Das Paket „DNS Server“ installieren.
    2. Eine Master-Zone stargate anlegen und A-Einträge für nas und fotos hinzufügen.
    3. Im Router das NAS als DNS-Server per DHCP verteilen. Bei der FRITZ!Box geht das unter Heimnetz → Netzwerk → Netzwerkeinstellungen → IPv4-Einstellungen → Lokaler DNS-Server.
  • hosts-Datei (für den Anfang): Auf jedem Rechner diese Zeile eintragen:
    192.168.178.20 nas.stargate fotos.stargate
    Unter Windows liegt die Datei in C:\Windows\System32\drivers\etc\hosts, unter macOS und Linux in /etc/hosts. Das funktioniert sofort, ist auf Dauer aber mühsam und auf Smartphones kaum machbar.

Testen lässt sich das mit ping nas.stargate oder nslookup nas.stargate.

Tipp zur Domain-Wahl: .stargate ist keine offizielle Top-Level-Domain und funktioniert im Heimnetz problemlos. Theoretisch könnte eine solche Endung aber irgendwann öffentlich vergeben werden. Wer auf Nummer sicher gehen will, nutzt die dafür reservierten Endungen .internal oder .home.arpa, z. B. nas.stargate.internal. Die Anleitung funktioniert mit jedem Namen gleich.

Schritt 1: Die eigene Root-CA erstellen

Zuerst legen wir einen Arbeitsordner an und erzeugen den privaten Schlüssel der CA. Dieser Schlüssel ist das Wichtigste der ganzen Anleitung: Wer ihn besitzt, kann Zertifikate ausstellen, denen alle eure Geräte vertrauen. Deshalb verschlüsseln wir ihn mit einem Passwort.

mkdir stargate-ca && cd stargate-ca

# Privater Schlüssel der Root-CA (fragt nach einem Passwort)
openssl genrsa -aes256 -out stargate-rootCA.key 4096

Daraus erstellen wir das selbstsignierte Stammzertifikat mit 10 Jahren Laufzeit:

openssl req -x509 -new -key stargate-rootCA.key -sha256 -days 3650 \
  -out stargate-rootCA.crt \
  -subj "/C=DE/O=Stargate Heimnetz/CN=Stargate Root CA" \
  -addext "basicConstraints=critical,CA:TRUE" \
  -addext "keyUsage=critical,keyCertSign,cRLSign"

Ergebnis:

  • stargate-rootCA.key ist geheim. Sicher aufbewahren, z. B. im Passwortmanager oder auf einem verschlüsselten USB-Stick, und niemals weitergeben.
  • stargate-rootCA.crt ist öffentlich. Diese Datei kommt später auf alle Geräte.

Schritt 2: Das Server-Zertifikat für nas.stargate und fotos.stargate

Moderne Browser werten nur die sogenannten Subject Alternative Names (SAN) aus. Dort tragen wir alle Namen ein, unter denen das NAS erreichbar sein soll, optional auch die IP-Adresse. Dazu legen wir die Datei stargate-server.ext an:

authorityKeyIdentifier = keyid,issuer
basicConstraints = CA:FALSE
keyUsage = critical, digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names

[alt_names]
DNS.1 = nas.stargate 
DNS.2 = fotos.stargate 
IP.1 = 192.168.178.20

Warum kein Wildcard-Zertifikat *.stargate? Browser lehnen Wildcards direkt unter einer Top-Level-Domain ab. Deshalb listen wir jeden Namen einzeln auf. Weitere Dienste einfach als DNS.3, DNS.4 usw. ergänzen. Bei einer Domain wie stargate.internal wäre *.stargate.internal dagegen möglich.

Nun erzeugen wir Schlüssel und Zertifikatsanfrage (CSR) für den Server und signieren sie mit unserer Root-CA:

# Privater Schlüssel des Servers (unverschlüsselt, das NAS braucht ihn so)
openssl genrsa -out stargate-server.key 2048

# Zertifikatsanfrage
openssl req -new -key stargate-server.key -out stargate-server.csr \
  -subj "/C=DE/O=Stargate Heimnetz/CN=nas.stargate"

# Mit der Root-CA signieren (fragt nach dem CA-Passwort)
openssl x509 -req -in stargate-server.csr \
  -CA stargate-rootCA.crt -CAkey stargate-rootCA.key -CAcreateserial \
  -out stargate-server.crt -days 825 -sha256 \
  -extfile stargate-server.ext

Die Laufzeit von 825 Tagen ist kein Zufall: Apple-Geräte lehnen Server-Zertifikate mit längerer Laufzeit ab. Nach gut zwei Jahren wiederholt man also einfach diesen Schritt.

Kurz prüfen, ob alles stimmt:

# Wurde das Zertifikat von unserer CA signiert?
openssl verify -CAfile stargate-rootCA.crt stargate-server.crt
# Erwartet: stargate-server.crt: OK

# Sind alle Namen enthalten?
openssl x509 -in stargate-server.crt -noout -ext subjectAltName

Schritt 3: Das Zertifikat auf dem Synology NAS einrichten

Zertifikat importieren

  1. Im DSM Systemsteuerung → Sicherheit → Zertifikat öffnen.
  2. Auf Hinzufügen klicken und „Ein neues Zertifikat hinzufügen“ wählen.
  3. Eine Beschreibung wie „Stargate Heimnetz“ vergeben. Optional „Als Standardzertifikat festlegen“ anhaken.
  4. „Zertifikat importieren“ auswählen und die Dateien zuordnen:
    • Privater Schlüssel: stargate-server.key
    • Zertifikat: stargate-server.crt
    • Zwischenzertifikat: stargate-rootCA.crt (optional, schadet aber nicht)
  5. Mit OK abschließen.

Achtung: Hier gehört der Schlüssel des Servers hinein, niemals stargate-rootCA.key!

fotos.stargate direkt zu Synology Photos leiten

Damit https://fotos.stargate ohne Portnummer direkt Synology Photos öffnet, gibt es im DSM zwei Möglichkeiten.

Variante A: Benutzerdefinierte Domain (am einfachsten)

  1. Systemsteuerung → Anmeldeportal → Anwendungen öffnen.
  2. „Synology Photos“ auswählen und auf Bearbeiten klicken.
  3. Bei „Benutzerdefinierte Domain“ fotos.stargate eintragen und speichern.

Variante B: Reverse Proxy (flexibler, auch für Docker-Container)

Unter Systemsteuerung → Anmeldeportal → Erweitert → Reverse Proxy → Erstellen eintragen:

  • Quelle: Protokoll HTTPS, Hostname fotos.stargate, Port 443
  • Ziel: Protokoll HTTP, Hostname localhost, Port des Dienstes. Bei Synology Photos ist das der Port aus dem Anmeldeportal, bei Docker-Containern der veröffentlichte Container-Port.

Zertifikat den Diensten zuweisen

  1. Zurück in Systemsteuerung → Sicherheit → Zertifikat auf Einstellungen klicken. Dort stehen alle Dienste, z. B. DSM, Synology Photos, der Reverse-Proxy-Eintrag für fotos.stargate und WebDAV.
  2. Bei jedem gewünschten Dienst das Zertifikat „Stargate Heimnetz“ auswählen.
  3. Mit OK bestätigen. Der Webserver des NAS startet dabei kurz neu.

Ruft man jetzt https://nas.stargate:5001 auf, liefert das NAS bereits unser Zertifikat aus. Der Browser warnt aber noch, weil er unsere Root-CA nicht kennt. Das ändern wir im nächsten Schritt.

Schritt 4: Die Root-CA auf allen Geräten installieren

Auf jedes Gerät kommt nur die Datei stargate-rootCA.crt. Am einfachsten legt man sie in einen freigegebenen Ordner auf dem NAS, verschickt sie per Mail oder per AirDrop.

Windows 10 / 11

  1. Doppelklick auf stargate-rootCA.crt → Zertifikat installieren…
  2. Als Speicherort Lokaler Computer wählen. Dann gilt das Zertifikat für alle Benutzer.
  3. „Alle Zertifikate in folgendem Speicher speichern“ → Vertrauenswürdige Stammzertifizierungsstellen → Fertig stellen.

Alternativ in einer Eingabeaufforderung als Administrator:

certutil -addstore -f "ROOT" stargate-rootCA.crt

Edge und Chrome nutzen den Windows-Zertifikatsspeicher automatisch. Danach den Browser neu starten.

macOS

  1. Doppelklick auf stargate-rootCA.crt. Die Schlüsselbundverwaltung öffnet sich. Als Schlüsselbund „System“ wählen.
  2. Das Zertifikat „Stargate Root CA“ doppelt anklicken und den Bereich Vertrauen aufklappen.
  3. „Bei Verwendung dieses Zertifikats“ auf Immer vertrauen stellen und mit dem Admin-Passwort bestätigen.

Oder im Terminal:

sudo security add-trusted-cert -d -r trustRoot \
  -k /Library/Keychains/System.keychain stargate-rootCA.crt

Linux

Debian, Ubuntu, Linux Mint:

sudo cp stargate-rootCA.crt /usr/local/share/ca-certificates/stargate-rootCA.crt
sudo update-ca-certificates

Fedora, RHEL, openSUSE:

sudo cp stargate-rootCA.crt /etc/pki/ca-trust/source/anchors/
sudo update-ca-trust

Damit vertrauen System-Tools wie curl oder wget dem Zertifikat. Chrome bzw. Chromium unter Linux nutzt aber eine eigene Datenbank (NSS). Dort gibt es zwei Wege:

  • Im Browser: Einstellungen → Datenschutz und Sicherheit → Sicherheit → Zertifikate verwalten → Zertifizierungsstellen → Importieren.
  • Per Kommandozeile (Paket libnss3-tools):
certutil -d sql:$HOME/.pki/nssdb -A -t "C,," -n "Stargate Root CA" -i stargate-rootCA.crt

Firefox (alle Systeme)

Firefox hat einen eigenen Zertifikatsspeicher. Aktuelle Versionen übernehmen unter Windows und macOS die Stammzertifikate des Systems meist automatisch. Falls nicht, gibt es zwei Wege:

  • In about:config den Wert security.enterprise_roots.enabled auf true setzen.
  • Oder die CA direkt importieren: Einstellungen → Datenschutz & Sicherheit → Zertifikate anzeigen → Zertifizierungsstellen → Importieren. Dabei „Dieser CA vertrauen, um Websites zu identifizieren“ anhaken.

iPhone und iPad

  1. Die Datei per AirDrop oder Mail aufs Gerät schicken und antippen. iOS meldet „Profil geladen“.
  2. Einstellungen → Profil geladen (ganz oben) → Installieren.
  3. Wichtig und oft vergessen: Einstellungen → Allgemein → Info → Zertifikatsvertrauenseinstellungen öffnen und den Schalter bei „Stargate Root CA“ aktivieren.

Android

  1. Die Datei aufs Gerät kopieren.
  2. Einstellungen → Sicherheit → Weitere Sicherheitseinstellungen → Verschlüsselung & Anmeldedaten → Zertifikat installieren → CA-Zertifikat öffnen und die Datei auswählen. Der Pfad unterscheidet sich je nach Hersteller etwas. Am schnellsten findet man den Punkt über die Suche in den Einstellungen („Zertifikat“).

Chrome vertraut der CA danach. Manche Apps, darunter einige Synology-Apps, ignorieren aber seit Android 7 selbst installierte Zertifizierungsstellen. In dem Fall in der App die Option zum Zulassen des Zertifikats nutzen oder per IP bzw. QuickConnect verbinden.

Schritt 5: Testen

Den Browser komplett neu starten und aufrufen:

  • https://nas.stargate:5001 für die DSM-Oberfläche
  • https://fotos.stargate für Synology Photos

Ein Klick aufs Schloss-Symbol sollte „Verbindung ist sicher“ und als Aussteller „Stargate Root CA“ zeigen. Auf der Kommandozeile geht es auch:

curl -v https://fotos.stargate 2>&1 | grep -i "ssl certificate verify"
# Erwartet: SSL certificate verify ok.

Fehlersuche

  • NET::ERR_CERT_AUTHORITY_INVALID: Die Root-CA ist auf diesem Gerät oder in diesem Browser nicht installiert bzw. nicht als vertrauenswürdig markiert. Unter iOS an die Zertifikatsvertrauenseinstellungen denken.
  • NET::ERR_CERT_COMMON_NAME_INVALID: Der aufgerufene Name fehlt in den SAN-Einträgen. Die .ext-Datei ergänzen und Schritt 2 wiederholen.
  • NET::ERR_CERT_VALIDITY_TOO_LONG (Safari/iOS): Die Laufzeit liegt über 825 Tagen. Das Zertifikat neu ausstellen.
  • Seite nicht erreichbar: Das ist kein Zertifikatsproblem, sondern DNS. Mit nslookup fotos.stargate prüfen, ob die richtige IP zurückkommt.
  • Falsches Zertifikat wird ausgeliefert: Im DSM unter Zertifikat → Einstellungen prüfen, ob der Dienst bzw. Reverse-Proxy-Eintrag wirklich auf „Stargate Heimnetz“ steht.
  • Import im DSM schlägt fehl: Der Server-Schlüssel darf nicht passwortgeschützt sein und muss im PEM-Format vorliegen. Die Datei beginnt dann mit -----BEGIN.

Erneuern und erweitern

Läuft das Server-Zertifikat ab oder soll ein neuer Name dazukommen:

  1. Die .ext-Datei anpassen.
  2. Schritt 2 wiederholen.
  3. Das neue Zertifikat im DSM über Zertifikat → Aktion → Zertifikat ersetzen einspielen.

Die Zuordnung zu den Diensten bleibt erhalten. Auf den Geräten muss nichts geändert werden, solange die Root-CA gültig ist. Ein Kalendereintrag ein paar Wochen vor Ablauf erspart unangenehme Überraschungen.

Ein Wort zur Sicherheit

Wer die Root-CA installiert, erlaubt ihr, Zertifikate für beliebige Domains auszustellen, auch für google.de oder die Website der eigenen Bank. Solange der Schlüssel stargate-rootCA.key sicher verwahrt ist, ist das unkritisch. Gelangt er in falsche Hände, sollte man die CA auf allen Geräten entfernen und neu erstellen. Deshalb gilt für den CA-Schlüssel:

  • mit starkem Passwort schützen
  • offline aufbewahren
  • niemals auf dem NAS selbst liegen lassen

Fazit

Mit einer Handvoll OpenSSL-Befehlen und etwas Klickarbeit im DSM bekommt man ein Heimnetz mit sprechenden Adressen wie nas.stargate und fotos.stargate, verschlüsselt und ohne Browser-Warnungen. Der größte Aufwand ist das einmalige Verteilen der Root-CA auf die Geräte. Danach lassen sich neue Dienste in wenigen Minuten absichern.

Tipp: Wie du einen eigenen DNS-Server im Heimnetz einrichtest, damit Adressen wie nas.stargate oder fotos.stargate auf allen Geräten funktionieren, erkläre ich ausführlich im Artikel DNS-Server: SSL-verschlüsselte Domains im lokalen Heimnetzwerk.

In der Kategorie Smart Home findest Sie weitere interessante Artikel zum Thema Smart Home und Netzwerk.

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert.