Generierung eines eigenen SSL-Zertifikats: Unterschied zwischen den Versionen

Aus Synology Wiki
Wechseln zu: Navigation, Suche
K
 
(15 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 +
==Voraussetzung==
 +
Zugang auf [[die Kommandozeile]] der Synology Station.
 +
 
==Vorbereitung==
 
==Vorbereitung==
 
*Zunächst erstellt man ein temporäres Arbeitsverzeichnis. Zum Beispiel '''/usr/local/ssl/'''
 
*Zunächst erstellt man ein temporäres Arbeitsverzeichnis. Zum Beispiel '''/usr/local/ssl/'''
*Dort erstellt man zunächst zwei Konfigurationsdateien:
+
<pre>mkdir /usr/local/ssl</pre>
**'''vi ca.config''' mit folgendem Inhalt:
+
<pre>cd /usr/local/ssl</pre>
 +
*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)
 +
 
 
<pre>
 
<pre>
 
[ req ]
 
[ req ]
Zeile 21: Zeile 28:
 
commonName_max = 64
 
commonName_max = 64
 
commonName_default = Synology Station
 
commonName_default = Synology Station
emailAddress = "7. Email Addresse "
+
emailAddress = "7. Email Adresse "
 
emailAddress_max = 40
 
emailAddress_max = 40
 
</pre>
 
</pre>
Zeile 40: Zeile 47:
 
localityName = "3. Ort "
 
localityName = "3. Ort "
 
0.organizationName = "4. Name der Organisation "
 
0.organizationName = "4. Name der Organisation "
organizationalUnitName = "5. Name der Organisatioseinheit "
+
organizationalUnitName = "5. Name der Organisationseinheit "
 
commonName = "6. Common Name (DynDNS) "
 
commonName = "6. Common Name (DynDNS) "
 
commonName_max = 64
 
commonName_max = 64
 
commonName_default = name.dyndns.org
 
commonName_default = name.dyndns.org
emailAddress = "7. Email Addresse "
+
emailAddress = "7. Email Adresse "
 
emailAddress_max = 40
 
emailAddress_max = 40
 
</pre>
 
</pre>
 +
*sowie
 +
**'''vi extfile.cnf''' mit folgendem Inhalt, z.B.:
 +
<pre>
 +
subjectAltName=IP:192.168.0.25,DNS:DS212,DNS:DS212.meinefirma.de,DNS:myhost.dydns.org,DNS:myhost.no-ip.com
 +
</pre>
 +
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.
Die Generierung von eigenen SSL-Zertifikaten erfolgt immer in zwei Schritten. Zunächst wird ein Stammzertifikat generiert und daraus wird dann das Serverzertifikat erstellt, das beim Starten des Webservers eingelesen 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==
 
==Erstellung des Stammzertifikats==
#Bei der Gererierung des Schlüssels wird ein Passwort benötigt, mit dem später die Zertifikate erstellt werden. Generierung des Schlüssels '''ca.key''':<pre>openssl genrsa -des3 -out ca.key 1024</pre>
+
#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''':<pre>openssl genrsa -des3 -out ca.key 1024</pre>
 
#Erstellung des Key-Zertifikats:<pre>openssl req -config ca.config -new -key ca.key -out ca.csr</pre>
 
#Erstellung des Key-Zertifikats:<pre>openssl req -config ca.config -new -key ca.key -out ca.csr</pre>
#Erstellung des endgültigen Zertifikats mit einer Gültigkeit von 10 Jahren:<pre>openssl x509 -days 3650 -signkey ca.key -in ca.csr -req -out ca.crt</pre>
+
#Erstellung des endgültigen Zertifikats mit einer Gültigkeit von 10 Jahren:<pre>openssl x509 -days 3650 -signkey ca.key -in ca.csr -req -extfile extfile.cnf -out ca.crt</pre>
  
  
 
==Erstellung des Server-Zertifikats==
 
==Erstellung des Server-Zertifikats==
#Gererierung des Schlüssels:<pre>openssl genrsa -out server.key 1024</pre>
+
#Generierung des Schlüssels:<pre>openssl genrsa -out server.key 1024</pre>
 
#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.<pre>openssl req -config server.config -new -key server.key -out server.csr</pre>
 
#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.<pre>openssl req -config server.config -new -key server.key -out server.csr</pre>
#Generierung des Server-Zertifikats:<pre>openssl x509 -days 3650 -CA ca.crt -CAkey ca.key -set_serial 01 -in server.csr -req -out server.crt</pre>
+
#Generierung des Server-Zertifikats:<pre>openssl x509 -days 3650 -CA ca.crt -CAkey ca.key -set_serial 01 -in server.csr -req -extfile extfile.cnf -out server.crt</pre>
 +
 
  
 
==Austausch der Dateien==
 
==Austausch der Dateien==
Zeile 67: Zeile 82:
 
*Kopieren der alten Zertifikate:  
 
*Kopieren der alten Zertifikate:  
 
<pre>
 
<pre>
cp ssl.crt bak
+
cp -r ssl.crt bak
cp ssl.csr bak
+
cp -r ssl.csr bak
cp ssl.key bak
+
cp -r ssl.key bak
 
</pre>
 
</pre>
 
*Verschieben der neuen Zertifikate an den richtigen Ort:
 
*Verschieben der neuen Zertifikate an den richtigen Ort:
Zeile 82: Zeile 97:
 
*Die '''ca.crt''' kann nun auf den jeweiligen Client-Rechnern installiert werden. Wir kopieren diese Datei dazu zunächst ins Verzeichnis '''public'''. <pre>cp /usr/syno/etc/ssl/ssl.crt/ca.crt /volume1/public</pre>
 
*Die '''ca.crt''' kann nun auf den jeweiligen Client-Rechnern installiert werden. Wir kopieren diese Datei dazu zunächst ins Verzeichnis '''public'''. <pre>cp /usr/syno/etc/ssl/ssl.crt/ca.crt /volume1/public</pre>
 
*Neustart der Synology Station
 
*Neustart der Synology Station
*Abschliessend 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'''.
+
 
 +
 
 +
==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==
 +
*[[wikipedia:de:Digitales_Zertifikat|Wikipedia: Digitales Zertifikat]]
 +
*[[wikipedia:de:OpenSSL|Wikipedia: OpenSSL]]

Aktuelle Version vom 22. August 2013, 14:00 Uhr

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