Generierung eines eigenen SSL-Zertifikats: Unterschied zwischen den Versionen
imported>Benares KKeine Bearbeitungszusammenfassung |
imported>Jahlives |
||
Zeile 62: | Zeile 62: | ||
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. | 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. | ||
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== |
Version vom 21. Dezember 2012, 10:53 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. 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
- 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
- Erstellung des Key-Zertifikats:
openssl req -config ca.config -new -key ca.key -out ca.csr
- 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
- Generierung des Schlüssels:
openssl genrsa -out server.key 1024
- 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
- 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.