Generierung eines eigenen SSL-Zertifikats

Aus Synology Wiki
Wechseln zu: Navigation, Suche

Voraussetzung

Zugang auf die Kommandozeile der Synology Station.

Vorbereitung

  • Zunächst erstellt man ein temporäres Arbeitsverzeichnis. Zum Beispiel /usr/local/ssl/
mkdir /usr/local/ssl
cd /usr/local/ssl
  • Dort erstellt man zunächst drei Konfigurationsdateien:
    • vi ca.config mit genau folgendem Inhalt:

(Hier noch keine genauen Angaben machen, das erfolgt erst später)

[ req ]
default_bits = 1024
distinguished_name = req_DN
string_mask = nombstr

[ req_DN ]
countryName = "1. Staat (2 Buchstaben)"
countryName_default = DE
countryName_min = 2
countryName_max = 2
stateOrProvinceName = "2. Bundesland "
localityName = "3. Ort "
0.organizationName = "4. Name der Organisation "
organizationalUnitName = "5. Name der Organisationseinheit "
commonName = "6. Common Name (Synology Station) "
commonName_max = 64
commonName_default = Synology Station
emailAddress = "7. Email Adresse "
emailAddress_max = 40
  • und
    • vi server.config mit folgendem Inhalt:
[ req ]
default_bits = 1024
distinguished_name = req_DN
string_mask = nombstr

[ req_DN ]
countryName = "1. Staat (2 Buchstaben)"
countryName_default = DE
countryName_min = 2
countryName_max = 2
stateOrProvinceName = "2. Bundesland "
localityName = "3. Ort "
0.organizationName = "4. Name der Organisation "
organizationalUnitName = "5. Name der Organisationseinheit "
commonName = "6. Common Name (DynDNS) "
commonName_max = 64
commonName_default = name.dyndns.org
emailAddress = "7. Email Adresse "
emailAddress_max = 40
  • sowie
    • vi extfile.cnf mit folgendem Inhalt, z.B.:
subjectAltName=IP:192.168.0.25,DNS:DS212,DNS:DS212.meinefirma.de,DNS:myhost.dydns.org,DNS:myhost.no-ip.com

Hier trägt man alle IP-Adressen (IP:) oder DNS-Namen (DNS:) ein, unter denen die DS zusätzlich zum Haupt-DynDNS-Namen (Common Name) in der URL angesprochen wird und für die die Zertifikate auch gelten sollen. Hier sind auch lokale Adressen/Namen möglich.

Die Generierung von eigenen SSL-Zertifikaten erfolgt immer in zwei Schritten. Während dieser Schritte wird dann nach den Angaben gefragt, die bei den oben zu erstellenden Dateien noch mit Platzhaltern versehen sind. Ebenso wird ein Paßwort erstellt, das bei der späteren Erstellung der Zertifikate benötigt wird. Zunächst wird ein Stammzertifikat generiert und daraus wird dann das Serverzertifikat erstellt, das beim Starten des Webservers eingelesen wird. Ein Stammzerifikat ist nur dann nötig wenn man das Zertifikat selber signieren will. Will man nur ein eignes Server Zertifikat haben, welches man extern signieren lässt, dann ist ein Stammzertifikat natürlich unnötig und man kann gleich mit der Generierung eines Servers Zertifikats loslegen

Erstellung des Stammzertifikats

  1. Bei der Generierung des Schlüssels wird ein Passwort benötigt, mit dem später die Zertifikate erstellt werden. Generierung des Schlüssels ca.key:
    openssl genrsa -des3 -out ca.key 1024
  2. Erstellung des Key-Zertifikats:
    openssl req -config ca.config -new -key ca.key -out ca.csr
  3. Erstellung des endgültigen Zertifikats mit einer Gültigkeit von 10 Jahren:
    openssl x509 -days 3650 -signkey ca.key -in ca.csr -req -extfile extfile.cnf -out ca.crt


Erstellung des Server-Zertifikats

  1. Generierung des Schlüssels:
    openssl genrsa -out server.key 1024
  2. Generierung des Key-Zertifikats - wichtig ist hier vor allem der Common Name. Dieser muss mit dem verwendeten DNS-Namen übereinstimmen, also z.B. name.dyndns.org. Auch Wildcards wie *.name.dyndns.org sind hierbei möglich.
    openssl req -config server.config -new -key server.key -out server.csr
  3. Generierung des Server-Zertifikats:
    openssl x509 -days 3650 -CA ca.crt -CAkey ca.key -set_serial 01 -in server.csr -req -extfile extfile.cnf -out server.crt


Austausch der Dateien

  • Wechseln ins Synology Zertifikatsverzeichnis
    cd /usr/syno/etc/ssl
  • Erstellen eines Backupverzeichnisses für die alten Dateien
    mkdir bak
  • Kopieren der alten Zertifikate:
cp -r ssl.crt bak
cp -r ssl.csr bak
cp -r ssl.key bak
  • Verschieben der neuen Zertifikate an den richtigen Ort:
mv /usr/local/ssl/ca.crt ssl.crt
mv /usr/local/ssl/server.crt ssl.crt
mv /usr/local/ssl/ca.csr ssl.csr
mv /usr/local/ssl/server.csr ssl.csr
mv /usr/local/ssl/ca.key ssl.key
mv /usr/local/ssl/server.key ssl.key
  • Die ca.crt kann nun auf den jeweiligen Client-Rechnern installiert werden. Wir kopieren diese Datei dazu zunächst ins Verzeichnis public.
    cp /usr/syno/etc/ssl/ssl.crt/ca.crt /volume1/public
  • Neustart der Synology Station


Installation des Zertifikats auf dem Client-Rechner

Abschließend muss das Zertifikat noch auf den Client-Rechnern als "vertrauenswürdige Stammzertifizierungsstelle" installiert werden. Dazu kopiert man die Datei ca.crt auf den jeweiligen Rechner. Die Installation erfolgt unter Windows aus dem Explorer mit Rechtsklick -> Zertifikat installieren.


externe Links