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 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.
Selbstsignierte SSL-Zertifikate werden mit folgenden Schritten erstellt:
1.Erstellung eines Root-Zertifikats
2.Erstellung eines FlowForce-Zertifikats
3.Import des Root-Zertifikats
Nähere Informationen zu den einzelnen Schritten finden Sie in den Unterabschnitten weiter unten.
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 und eventuell kompiliert werden muss, bevor Sie diese in der Befehlszeile verwenden können. Die Kompilierungs- und Installationsanleitung für OpenSSL ist bei jedem Betriebssystem anders. OpenSSL ist auf den meisten Linux Distributions und macOS-Rechnern bereits vorinstalliert. Durch Eingabe des folgenden Befehls können Sie schnell überprüfen, ob OpenSSL installiert ist (angezeigt wird die aktuelle OpenSSL-Version):
openssl version
OpenSSL kann auch auf Windows-Computern installiert werden. Download Links zu den Installations-Binärdateien finden Sie im OpenSSL Wiki.
Schritt 1: Erstellung eines Root-Zertifikats
In der Folge wird erläutert, wie Sie ein Root-Zertifikat erstellen. Mit Hilfe des Root-Zertifikats wird das Server-Zertifikat signiert (Schritt 2 unten).
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. Wechseln Sie anschließend 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 Root-Schlüssel, der als Private Key Ihrer Zertifizierungsstelle (CA) fungiert. Denken Sie daran, dass dieser Schlüssel zu den sensibelsten 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, das als öffentliches Zertifikat Ihrer Zertifizierungsstelle fungiert. Mit dem nachstehenden Befehl wird ein selbstsigniertes Zertifikat für den oben erstellten 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).
Schritt 2: Erstellung eines FlowForce-Zertifikats
Im nächsten Schritt 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. Das FlowForce-Zertifikat wird mit dem in Schritt 1.4 erstellten Root-Zertifikat signiert. Gehen Sie folgendermaßen vor:
1.Erstellen Sie den privaten Schlüssel mit dem OpenSSL-Befehl unten. Der private Schlüssel gehört zu Ihrem von FlowForce verwendeten selbstsignierten Zertifikat.
openssl genrsa -out flowforce.key 2048
Der Private Key muss im PEM (Privacy Enhanced Mail)-Format 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.
2.Öffnen Sie 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 Chrome-Hilfeseite).
3.Erstellen Sie einen Certificate Signing Request (CSR) mit dem unten gezeigten Befehl. 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
4.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) []: server.my.domain.com
Email Address []: test@example.org
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 Challenge Password-Feld leer, wenn Sie danach gefragt werden.
5.Signieren Sie das FlowForce-Zertifikat mit dem Root-Zertifikat. 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
Nach Durchführung von Schritt 1 und 2 müssen Sie 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) (Schritt 2 unten).
•flowforce.key: Dies ist der private Schlüssel zu dem von FlowForce verwendeten selbstsignierten Zertifikat (siehe nächster Punkt).
•flowforce.crt: Dies ist Ihr selbstsigniertes Zertifikat für die Verwendung durch FlowForce Server, FlowForce Web Server oder beide.
Schritt 3: Importieren von Root-Zertifikaten
Wenn Sie Ihre eigene Zertifizierungsstelle (CA) erstellen, ist das Root-Zertifikat selbstsigniert und wird daher standardmäßig von keinem Browser als vertrauenswürdig akzeptiert. Damit ein HTTP-Client (wie z.B. ein Browser) Ihr selbstsigniertes Zertifikat als vertrauenswürdig anerkennt, muss das Zertifikat folgendermaßen importiert werden:
•Importieren Sie es in den Betriebssystemspeicher für vertrauenswürdige Zertifikate, falls der Browser diesen verwendet. Auf Windows-Systemen verwenden etwa Google Chrome und Microsoft Edge den Zertifikatspeicher des Betriebssystems, während Mozilla Firefox seinen eigenen Zertifikatspeicher verwendet. Auf Linux-Systemen verwenden sowohl Google Chrome als auch Mozilla Firefox ihren eigenen Zertifikatspeicher (siehe nächster Punkt). Auf Mac-Systemen verwendet Safari den Zertifikatspeicher des Betriebssystems (Keychain Access).
•Importieren Sie es in den Browser-eigenen Speicher für vertrauenswürdige Zertifikate.
Anmerkungen
•Das selbstsignierte Zertifikat muss für jeden Client-Rechner (oder ggf. Browser), der auf FlowForce Server zugreift, importiert werden. •Wenn Sie zwischen FlowForce Web Server und FlowForce Server die SSL-Verschlüsselung aktivieren, genügt es nicht, das Zertifikat in den Browser zu importieren. Ihr selbstsigniertes Root CA-Zertifikat muss auch vom Betriebssystem als vertrauenswürdig erkannt werden. |
Die Anleitung zum Importieren des Root-Zertifikats variiert je nach Betriebssystem. Nähere Informationen dazu finden Sie in den Unterabschnitten weiter unten.
Auf Linux-Systemen gehen Sie vor, wie unten gezeigt, um ein vertrauenswürdiges Zertifikat in den Zertifikatspeicher des Systems zu importieren: Führen Sie die folgenden Schritte nur durch, wenn Sie sicher sind, dass das betreffende Zertifikat authentisch ist.
Befolgen Sie auf Debian und Ubuntu die folgende Anleitung:
1.Kopieren Sie die Zertifikatdatei des Webservers in das folgende Verzeichnis.
sudo cp /home/downloads/server_cert.crt /usr/local/share/ca-certificates/
2.Aktualisieren Sie den Zertifikatspeicher folgendermaßen:
sudo update-ca-certificates
Befolgen Sie auf CentOS die folgende Anleitung:
1.Installieren Sie das Paket ca-certificates:
yum install ca-certificates
2.Aktivieren Sie die Funktion zur dynamischen Konfiguration der Zertifizierungsstelle:
update-ca-trust enable
3.Kopieren Sie das Server-Zertifikat in das folgenden Verzeichnis:
cp server_cert.crt /etc/pki/ca-trust/source/anchors/
4.Verwenden Sie den folgenden Befehl:
update-ca-trust extract
In Fällen, in denen Sie nur über den Browser auf den Server zugreifen, genügt es, das Zertifikat in den Zertifikatspeicher des Browsers zu importieren. Die genaue Vorgehensweise variiert je nach Browser. In Firefox 59.0.2 können Sie z.B. folgendermaßen vorgehen:
1.Klicken Sie unter Options | Privacy & Security auf View Certificates. 2.Klicken Sie auf dem Register Authorities auf Import und navigieren Sie zur zuvor erstellen Root-Zertifikatdatei. 3.Aktivieren Sie die Option Trust this CA to identify websites, wenn Sie gefragt werden und klicken Sie auf OK.
|
Auf macOS-Systemen importieren Sie ein vertrauenswürdiges Zertifikat auf folgende Weise in den Keychain Access:
1.Starten Sie Keychain Access. 2.Klicken Sie auf System und anschließend auf Certificates. 3.Klicken Sie im Menü File auf Import Items. 4.Navigieren Sie zum gewünschten vertrauenswürdigen Zertifikat und klicken Sie auf Open. 5.Geben Sie das Keychain Access-Passwort ein, wenn Sie dazu aufgefordert werden und klicken Sie anschließend auf Modify Keychain. 6.Doppelklicken Sie auf das Zertifikat, erweitern Sie den Abschnitt Trust und aktivieren Sie die Option Always Trust.
|
Auf Windows-Systemen können Sie Zertifikate über das Microsoft Management Console (MMC) Snap-in entweder für Ihr Benutzerkonto oder für das Computerkonto verwalten.
Um das Zertifikat-Snap-in für den aktuellen Windows-Benutzer zu öffnen, führen Sie über die Befehlszeile den folgenden Befehl aus:
certmgr.msc
Um das Zertifikat-Snap-in für das Computerkonto zu öffnen, gehen Sie folgendermaßen vor:
1.Führen Sie in der Befehlszeile den Befehl mmc aus. 2.Klicken Sie im Menü Datei der MMC auf Snap-in hinzufügen/entfernen. 3.Klicken Sie auf Zertifikate und anschließend auf Hinzufügen. 4.Wählen Sie Computerkonto aus und klicken Sie anschließend auf Weiter. 5.Wählen Sie Lokalen Computer und anschließend Fertig stellen.
Auf Windows-Systemen importieren Sie ein vertrauenswürdiges Zertifikat auf folgende Weise in den Zertifikatspeicher des Systems:
1.Öffnen Sie den Windows-Zertifikatspeicher für das Computer-Konto, siehe . 2.Erweitern Sie den Ordner Vertrauenswürdige Stammzertifizierungsstellen der Zertifikate (Lokaler Computer)-Struktur, klicken Sie mit der rechten Maustaste auf Zertifikate, wählen Sie Alle Aufgaben | Importieren und befolgen Sie die Anweisungen des Zertifikatimportassistenten.
Nähere Informationen dazu finden Sie auf der Microsoft Website im Artikel Import a Certificate.
|
Nächster Schritt
Nach Durchführung von Schritt 1-3 können Sie nun SSL für FlowForce Server, FlowForce Web Server und die HTTP-Verbindung zwischen diesen aktivieren. Eine Beschreibung dazu finden Sie unter Schritt 1 des Abschnitts Einrichten der SSL-Verschlüsselung.