Previous Topic

Next Topic

Book Contents

Book Index

FTP – Zertifikate – Clientzertifikat erstellen

Wenn SSL-Clientzertifikate verwendet werden sollen, müssen die einzelnen Benutzer Zertifikate haben. Hierzu wird in der Regel für jeden Benutzer ein eigenes Zertifikat angefordert. Der Prozess sieht wie folgt aus:

Die ersten beiden Schritte können auf verschiedene Weisen ausgeführt werden. In diesem Dokument wird gezeigt, wie diese Vorgänge mit OpenSSL, einem Freeware-Befehlszeilentool für die Zertifikatbearbeitung, durchgeführt werden. OpenSSL erhalten Sie von der OpenSSL-Seite mit Binärdateien.

Erstellen von Zertifikatanforderungen

In OpenSSL besteht der Vorgang der Erstellung einer Zertifikatsignierungsanforderung (Certificate Signing Request, CSR) aus zwei Schritten: der Erstellung eines privaten RSA-Schlüssels und der Erstellung der Zertifikatanforderung mit dem Benutzernamen und anderen Informationen.

Erstellen Sie zuerst einen Schlüssel. Vom Benutzer bereitgestellte Daten sind fett hervorgehoben:

Beispiel 1

C:\tmp>openssl genrsa -des3 -out clientcert.key 1024 Loading 'screen' into random state - done 
Generating RSA private key, 1024 bit long modulus
..............++++++ 
................++++++ 
e is 65537 (0x10001) 
Enter pass phrase for clientcert.key: (the password is not echoed) 
Verifying - Enter pass phrase for clientcert.key: 
C:\tmp>

Durch dieses Beispiel wird ein 1024-Bit-Schlüssel erstellt und in der Datei „clientcert.key“ gespeichert. 1024 Bit sind eine gute Sicherheitsstufe. Eine noch bessere Sicherheit erhalten Sie durch 2048 Bit, wodurch jedoch die Leistung nachlässt.

Erstellen Sie danach die CSR:

Beispiel 2

C:\tmp>openssl req -config \moveitdmz\util\openssl.conf -new -key clientcert.key -out clientcert.csr 
Enter pass phrase for clientcert.key: (enter the password given above) 
You are about to be asked to enter information that will be incorporated 
into your certificate request. 
What you are about to enter is what is called a Distinguished Name or a DN. 
There are quite a few fields but you can leave some blank 
For some fields there will be a default value, 
If you enter '.', the field will be left blank. 
----- 
Country Name (2 letter code) [US]:US 
State or Province Name (full name) [Some-State]:Wisconsin 
Locality Name (eg, city) []:Madison 
Organization Name (eg, company) [ACME Inc.]:Universal Exporters 
Organizational Unit Name (eg, section) []:Accounting 
Common Name (eg, fully qualified host name) []:Fred 
Email Address []:fred@univ-exporters.com 

Please enter the following 'extra' attributes 
to be sent with your certificate request 
A challenge password []: 
An optional company name []: 
C:\tmp>

Durch dieses Beispiel wird eine Zertifikatanforderung für Fred erstellt. Das optionale Challenge-Kennwort und der Firmenname bleiben in der Regel leer. Die Datei „clientcert.csr“ kann nun an die Zertifizierungsstelle gesendet werden, die das Zertifikat signiert.

Signieren von Zertifikatanforderungen

Nach der Erstellung einer Zertifikatanforderung sollte sie zur Signatur an eine Zertifizierungsstelle gesendet werden. Eine Zertifizierungsstelle kann Folgendes sein:

Wenn Sie sich selbst zur Zertifizierungsstelle machen wollen, so dass Sie selbst CSRs signieren können, benötigen Sie ein besonderes Zertifikat. Dieses wird nur Administratoren ausgestellt und von gewöhnlichen Benutzern NICHT benötigt. Ein solches Zertifikat erhalten Sie von verschiedenen Stellen (auch von den drei oben genannten). Wenn Sie für ein kleines Unternehmen arbeiten oder ein Zertifikat nur für Testzwecke benötigen, möchten Sie vielleicht Ihr eigenes selbst signiertes Zertifikat erstellen. Selbst signierte Zertifikate bieten das gleiche Maß an Verschlüsselung wie kommerziell erworbene Zertifikate, allerdings ist für diese Zertifikate ein wenig mehr Aufwand erforderlich, bis der Server ihnen vertraut. Selbst signierte Zertifikate sind kostenlos und über deren Laufzeit bestimmen Sie selbst.

Erstellen eines eigenen selbst signierten Zertifikats

Beispiel 3

C:\tmp>openssl req -config \moveitdmz\util\openssl.conf -x509 -days 365 -newkey rsa:1024 -keyout MyCAcert.key -out MyCAcert.cer 
Loading 'screen' into random state - done 
Generating a 1024 bit RSA private key 
.....++++++ 
....++++++ 
writing new private key to 'MyCAcert.key' 
Enter PEM pass phrase: (enter a new password that will be known only to the administrator) 
Verifying - Enter PEM pass phrase: 
----- 
You are about to be asked to enter information that will be incorporated 
into your certificate request. 
What you are about to enter is what is called a Distinguished Name or a DN. 
There are quite a few fields but you can leave some blank 
For some fields there will be a default value, 
If you enter '.', the field will be left blank. 
----- 
Country Name (2 letter code) [US]:US 
State or Province Name (full name) [Some-State]:Wisconsin 
Locality Name (eg, city) []:Madison 
Organization Name (eg, company) [ACME Inc.]:Universal Exporters 
Organizational Unit Name (eg, section) []:IT Dept 
Common Name (eg, fully qualified host name) []:UE IT Security 
Email Address []:ueitsec@univ-exporters.com 
C:\tmp>

Dies erstellt ein 1024-Bit-Zertifikat, das nach 365 Tagen abläuft. In diesem Beispiel gehört der Administrator, der das Zertifikat erstellt, zum selben Unternehmen wie der obige Antragsteller für das Clientzertifikat, jedoch zu einer anderen Abteilung. Der Schlüssel wird in die Datei „MyCAcert.key“ geschrieben und das öffentliche Zertifikat in die Datei „MyCAcert.cer“. Die Datei „MyCAcert.key“ und das zugehörige Kennwort sollten an einem sicheren Ort aufbewahrt werden.

Selbstsignieren von Zertifikaten

Sobald Sie über einen Signaturschlüssel verfügen (selbst erstellt oder von anderer Stelle ausgegeben), können Sie Zertifikatsignierungsanforderungen (CSRs) signieren:

Beispiel 4

C:\tmp>openssl x509 -req -in clientcert.csr -days 1000 -CA MyCAcert.cer -CAkey MyCAcert.key -CAcreateserial -out clientcert.cer 
Loading 'screen' into random state - done 
Signature ok 
subject=/C=US/ST=Wisconsin/L=Madison/O=Universal Exporters/OU=Accounting/CN=Fred/emailAddress=fred@univ-exporters.com 
Getting CA Private Key 
Enter pass phrase for MyCAcert.key: (enter the password of the CA cert) 
C:\tmp>

Dies liest die Zertifikatsignierungsanforderung, signiert sie, erstellt ein Clientzertifikat und schreibt dieses in die Datei „clientcert.cer“. In diesem Beispiel ist das Zertifikat 1000 Tage lang gültig.

„Clientcert.cer“ ist hier die öffentliche und „clientcert.key“ die private Komponente des Clientzertifikats. Manche Clientsoftware, zuvorderst auch Microsoft Windows, benötigen diese Dateien in einem anderen Format. Sofern Sie Zugriff auf die Datei „clientcert.cer“ des Benutzers haben (dies ist zum Beispiel der Fall, wenn Sie Beispiel 1 – an Ihre Situation angepasst – selbst ausgeführt haben), können Sie diese beiden Dateien mit einem Befehl wie dem Folgenden in das von Windows verlangte, nur aus einer PFX-Datei bestehende Format konvertieren:

Beispiel 5

C:\tmp>openssl pkcs12 -export -in clientcert.cer -inkey clientcert.key -out clientcert.pfx 
Loading 'screen' into random state - done 
Enter pass phrase for clientcert.key: (enter the password created via "openssl genrsa" at the top) 
Enter Export Password: (enter a new password. It can be the same as the openssl genrsa password) 
Verifying - Enter Export Password: 
C:\tmp>

Die Datei „clientcert.pfx“ enthält nun sowohl die private als auch die öffentliche Komponente des Schlüssels. Hat der Benutzer die CSR selbst erstellt und Ihnen die .key-Datei nicht gegeben, muss er diesen openssl pkcs12-Befehl selbst ausführen.

Importieren von Clientzertifikaten auf dem Computer des Benutzers

Auf dem Computer des Benutzers muss das Clientzertifikat in den Zertifikatspeicher des Computers importiert werden. Unter Microsoft Windows kopiert der Benutzer die Datei „clientcert.pfx“ hierzu auf seinen Computer und führt danach die folgenden Schritte aus:

Das Clientzertifikat kann nun verwendet werden. In der Liste der Clientzertifikate können Sie überprüfen, ob das Zertifikat installiert wurde:

Installieren des Zertifizierungsstellenzertifikats auf dem Server

Wenn Sie ein selbstsigniertes Zertifizierungsstellenzertifikat erstellt haben, müssen Sie es auf dem Server installieren. Nur dann vertraut der Server, auf dem MOVEit Transfer ausgeführt wird, Clientzertifikaten, die mit diesem Zertifizierungsstellenzertifikat signiert wurden. (Wenn Ihr Zertifizierungsstellenzertifikat von einer offiziellen Zertifizierungsstelle ausgegeben wurde, ist dieser Schritt nicht erforderlich, weil das Zertifikat eines solchen Zertifikatanbieters in Windows integriert ist.)

  1. Doppelklicken Sie auf die Datei MyCAcert.cer.

    Das Dialogfeld „Zertifikat“ wird angezeigt.

  2. Klicken Sie auf die Schaltfläche Zertifikat installieren.

    Die Seite Willkommen des Zertifikatimport-Assistenten wird angezeigt.

  3. Klicken Sie auf Weiter.

    Die Seite Zertifikatspeicher wird angezeigt.

  4. Wählen Sie Alle Zertifikate in folgendem Speicher speichern aus.
  5. Klicken Sie auf Durchsuchen.

    Das Fenster Zertifikatspeicher auswählen wird angezeigt.

  6. Wählen Sie Vertrauenswürdige Stammzertifizierungsstellen aus und klicken Sie auf OK. Klicken Sie auf anschließend auf Weiter.

    Die Seite Fertigstellen wird angezeigt.

    Klicken Sie auf Fertig stellen. Klicken Sie im Dialogfeld Sicherheitswarnung auf Ja.

  7. Klicken Sie im Dialogfeld Der Importvorgang war erfolgreich auf OK.
  8. Klicken Sie im Dialogfeld Zertifikat auf OK.