Erstellen selbstsignierter SSL-Zertifikate

www.altova.com Dieses Kapitel drucken Vorherige Seite Eine Ebene nach oben Nächste Seite

Startseite >  Konfigurieren des Servers > Einrichten der SSL-Verschlüsselung >

Erstellen selbstsignierter SSL-Zertifikate

In dieser Demo wird gezeigt, wie Sie selbstsignierte SSL-Zertifikate für in einem privaten Netzwerk ausgeführte FlowForce Server ausstellen. Beachten Sie, dass diese Demo absichtlich einfach gehalten wurde und sich in einer Produktionsumgebung eventuell so nicht verwenden lässt. Ihr Unternehmen hat wahrscheinlich spezielle Sicherheitsrichtlinien in Bezug auf SSL-Zertifikate und verwendet vielleicht andere Tools als die unten beschriebenen. Informationen dazu, wie Sie von einer vertrauenswürdigen Zertifizierungsstelle signierte Zertifikate erhalten, finden Sie unter Signieren von SSL-Zertifikaten bei einer Zertifizierungsstelle.

 

Voraussetzungen

In diesem Beispiel wird zur Generierung selbstsignierter Zertifikate der OpenSSL Toolkit (https://www.openssl.org/) verwendet. Beachten Sie, dass OpenSSL eine Open Source-Bibliothek ist. Es handelt sich hierbei nicht um eine für eine bestimmte Plattform kompilierte Binärapplikation. Die Kompilierungs- und Installationsanleitung für OpenSSL ist für jedes Betriebssystem unterschiedlich und wird in dieser Dokumentation nicht behandelt. Auf Linux- und Mac-Rechnern steht OpenSSL wahrscheinlich bereits zur Verfügung oder kann andernfalls über die Befehlszeile installiert oder aktualisiert werden. Durch Eingabe des folgenden Befehls können Sie schnell überprüfen, ob OpenSSL vorhanden ist (angezeigt wird die aktuelle OpenSSL-Version):

 

openssl version

 

Unter Windows können Sie Binärdateien entweder anhand des offiziellen OpenSSL Quellcodes kompilieren oder alternativ dazu eine Binary Distribution, die OpenSSL enthält, wie Cygwin (https://cygwin.com/) herunterladen.

 

Erstellen des Root-Zertifikats

1.Erstellen Sie ein Verzeichnis, in dem alle in dieser Demo verwendeten Zertifikate gespeichert werden (z.B. "C:\secure"). Dies dient als Arbeitsverzeichnis für alle folgenden OpenSSL-Befehle (d.h. alle Dateipfade sind relativ zu diesem Verzeichnis). Wechseln Sie daher in der Befehlszeile zu diesem Verzeichnis:

 

cd C:\secure

 

2.In dieser Demo erstellen wir Zertifikate mit OpenSSL-Erweiterungen. Zu diesem Zweck suchen Sie in Ihrer OpenSSL Distribution nach der Datei openssl.cnf und kopieren Sie sie in das zuvor erstellte Arbeitsverzeichnis.
3.Erstellen Sie den privaten Root-Schlüssel. Denken Sie daran, dass dieser Schlüssel zu den sensitivsten Daten Ihrer Public Key-Infrastruktur gehört, daher muss er immer in einer sicheren Umgebung generiert und gespeichert werden (In dieser Demo wird er im Verzeichnis "C:\secure" gespeichert).

 

openssl genrsa -aes256 -out root.key 2048

 

Geben Sie das Passwort für den Root-Schlüssel ein, wenn Sie dazu aufgefordert werden. Sie benötigen dieses Passwort später zum Signieren von Zertifikatanforderungen.

 

4.Erstellen Sie das Root-Zertifikat. Mit dem nachstehenden Befehl wird ein selbstsigniertes Zertifikat für den oben erstellen privaten Schlüssel mit einer Gültigkeit von 3650 Tagen generiert. Beachten Sie, das der Parameter -config auf die Datei openssl.cnf im selben Verzeichnis verweist. Der Parameter -extensions verweist auf die in openssl.cnf definierte Erweiterung "v3_ca".

 

openssl req -config openssl.cnf -extensions v3_ca -x509 -new -nodes -key root.key -sha256 -days 3650 -out root.pem

 

Geben Sie die Informationen über Ihr Unternehmen ein, wenn Sie dazu aufgefordert werden, z.B:

 

Country Name (2 letter code) [AU]: AT

State or Province Name (full name) [Some-State]: .

Locality Name (eg, city) []: Vienna

Organization Name (eg, company) [Internet Widgits Pty Ltd]: MyCompany Ltd

Organizational Unit Name (eg, section) []: IT

Common Name (eg, YOUR name) []: Demo CA

Email Address []: test@example.org

 

Sie können die erforderlichen Felder passend für Ihr Unternehmen ausfüllen. Geben Sie ins Feld Common Name den Namen der Stelle für Ihr selbstsigniertes Zertifikat ein (in diesem Beispiel "Demo CA").

 

Erstellen des FlowForce-Zertifikats

Nun können Sie das eigentliche Zertifikat, das (von FlowForce Server, FlowForce Web Server oder beiden) für die SSL-Verschlüsselung  verwendet werden soll, erstellen. Mit dem folgenden OpenSSL-Befehl wird der private Schlüssel erstellt:

 

openssl genrsa -out flowforce.key 2048

 

Anmerkung

Der private Schlüssel muss im PEM-Format (Privacy Enhanced Mail) sein. Die Dateierweiterung von PEM-Dateien lautet normalerweise .pem, kann aber auch .key, .cert, .cer oder .crt sein.
Damit Sie den privaten Schlüssel in FlowForce verwenden können, darf er nicht durch ein Passwort geschützt sein.
Der private Schlüssel muss sicher aufbewahrt werden.

 

Öffnen Sie als nächstes die Arbeitsdatei openssl.cnf und fügen Sie den folgenden Abschnitt hinzu:

 

[ server_cert ]
# Extensions for server certificates (`man x509v3_config`).
basicConstraints = CA:FALSE
nsCertType = server
nsComment = "OpenSSL Generated Server Certificate"
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid,issuer:always
keyUsage = critical, digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth
subjectAltName=DNS:server.my.domain.com

 

Es ist wichtig, dass Sie subjectAltName ("Subject Alternative Name") ändern, sodass er dem FQDN (Fully Qualified Domain Name) des Rechners entspricht, auf dem FlowForce Server ausgeführt wird. In diesem Beispiel wurde er auf "server.my.domain.com" gesetzt. Für Google Chrome 58 oder spätere Versionen ist eine Definition des Subject Alternative Name erforderlich, da Ihr selbstsigniertes Zertifikat sonst einen NET::ERR_CERT_COMMON_NAME_INVALID-Fehler erzeugt (siehe https://support.google.com/chrome/a/answer/7391219?hl=en).

 

Erstellen Sie als nächstes einen Certificate Signing Request (CSR), wie unten gezeigt. Beachten Sie, dass der Parameter -config auf die zuvor bearbeitete Datei openssl.cnf verweist. Der Parameter -extension verweist auf die in openssl.cnf definierte Erweiterung "server_cert".

 

openssl req -config openssl.cnf -extensions server_cert -new -nodes -key flowforce.key -out flowforce.csr

 

Geben Sie die Daten zu Ihrem Unternehmen ein, wenn Sie dazu aufgefordert werden, z.B.:

 

Country Name (2 letter code) [AU]: AT

State or Province Name (full name) [Some-State]: .

Locality Name (eg, city) []: Vienna

Organization Name (eg, company) [Internet Widgits Pty Ltd]: MyCompany Ltd

Organizational Unit Name (eg, section) []: IT

Common Name (eg, YOUR name) []: server.my.domain.com

Email Address []: test@example.org

 

Anmerkung

Geben Sie ins Feld Common Name den FQDN (Fully Qualified Domain Name) des Host-Rechners, auf dem FlowForce Server ausgeführt wird, ein.
Lassen Sie das Challende Password-Feld leer, wenn Sie danach gefragt werden.

 

In dieser Demo wird das FlowForce-Zertifikat direkt mit dem Root-Zertifikat signiert. Beachten Sie, dass Server-Zertifikate in einer Produktionsumgebung normalerweise nicht direkt mit dem Root-Zertifikat signiert werden, sondern stattdessen Zwischenzertifikate verwendet werden. Mit dem unten stehenden Befehl wird der flowforce.csr Zertifikat-Request anhand des zuvor erstellten Root-Zertifikats signiert und es wird eine flowforce.crt-Datei (das in FlowForce Server benötigte Server-Zertifikat) erstellt:

 

openssl x509 -extfile openssl.cnf -extensions server_cert -req -in flowforce.csr -CA root.pem -CAkey root.key -CAcreateserial -out flowforce.crt -days 365 -sha256

 

Zusammenfassung

Wenn Sie die obigen Anleitung befolgt haben, sollten Sie nun die folgenden Zertifikate und Schlüssel haben:

 

root.key - dies ist der private Schlüssel Ihrer Zertifizierungsstelle (CA). Speichern Sie diese Datei in einem sicheren Ordner; falls dieser Schlüssel in falsche Hände gerät, kann jeder damit in Ihrem Namen für Browser vertrauenswürdige Zertifikate erstellen.
root.pem - dies ist das öffentliche Zertifikat Ihrer Zertifizierungsstelle. Sie müssen dieses Zertifikat im Zertifikatspeicher für vertrauenswürdige Zertifikate aller Rechner (oder Browser), die sicheren Zugriff auf FlowForce benötigen, installieren (bzw. dorthin importieren), siehe Importieren von Root-Zertifikaten.
flowforce.key - dies ist der private Schlüssel zu dem von FlowForce verwendeten Zertifikat (siehe nächster Punkt).
flowforce.crt - dies ist das selbstsignierte Zertifikat für die Verwendung durch FlowForce Server, FlowForce Web Server oder beide.

 

Sie können SSL nun für FlowForce Server, FlowForce Web Server und die HTTP-Verbindung zwischen diesen, wie unten gezeigt, aktivieren:

 

Aktivieren von SSL für FlowForce Web Server
Aktivieren von SSL für FlowForce Server
Aktivieren von SSL zwischen FlowForce Web Server und FlowForce Server

© 2019 Altova GmbH