Page tree
Skip to end of metadata
Go to start of metadata

A) CSR erstellen

Wofür brauche ich ein CSR?

Ein Zertifikats-Request (Englisch: Certificate Signing Request -> CSR) ist der erste Schritt zu einem offiziellen SSL Zertifikat.

Dieses CSR wird an eine Zertifikatsstelle/Zertifizierungsstelle (Englisch: Certificate Authority -> CA) gesandt und von diesen nach entsprechender Überprüfung signiert

Beim Erstellen eines Zertifikats werden zwei Dateien generiert:

  1. Eine ".csr" Datei. Diese Datei wird an eine entsprechende Zertfikatsstelle gesandt um sie signieren zu lassen.
  2. Eine ".key" Datei. Bei dieser handelt es sich um den privaten Schlüssel des Zertifikats. Da dieser benötigt wird, um das Zertifikat verwenden zu können, sollte er nicht öffentlich zugänglich gemacht werden und darf auf keinen Fall verloren gehen!

Installation OpenSSL

Zur Generierung des Requests können unterschiedliche Tools verwendet werden.
Wir empfehlen hier die kostenlose Software OpenSSL 

OpenSSL für Windows

Vorbereitung

Um OpenSSL unter Windows zu verwenden, müssen einige Vorbereitungen getroffen werden.

Unter http://slproweb.com/products/Win32OpenSSL.html erhalten Sie die notwendigen Programme, um dies durchzuführen. Sie benötigen zum einen eine OpenSSL Version, zu empfehlen ist WIN64 OpenSSL(v 1.1.0e) für ein 64Bit Betriebssystem und für ein 32Bit System WIN32 OpenSSL(v1.1.0e).

Installation und Konfiguration

Für die anschließende Installation den Punkten der OpenSSL-Datei folgen.
Ist OpenSSL erfolgreich installiert, führen sie als Administrator die Windows Kommandozeile cmd aus. Hier in das Verzeichnis wechseln in das sie OpenSSL installiert haben, standardmäßig liegt diese Installation unter C:\OpenSSL-Win64\bin

cd "C:\OpenSSL-Win64\bin"

Gleich zu Beginn müssen folgende Variablen für OpenSSL gesetzt werden. Hierzu benützen Sie den Befehl set: 

set openssl_conf=“Ihr Installationsordner“\bin\openssl.cfg“, z.B.:

set openssl_conf=C:\OpenSSL-Win64\bin\openssl.cfg

Anschließend führen sie den folgenden Kommandobefehl aus: „set RANDFILE=“Ihr Installationsverzeichnis“\bin\.rnd“:

set RANDFILE=C:\OpenSSL-Win64\bin\.rnd

Nun ist OpenSSL fertig konfiguriert.

OpenSSL für Linux

Unter Linux einloggen und Openssl installieren, falls noch nicht vorhanden
Debian / Ubuntu: apt-get install openssl

Generierung Ihres Zertifikatsrequests

Das OpenSSL Kommando

Im folgenden Beispiel generieren Sie ein Zertifikatsrequest für die Domain www.ihredomain.com:

Windows:

cd "C:\Program Files\OpenSSL-Win64\bin"
openssl.exe req -new -newkey rsa:4096 -nodes -sha256 -out ihredomain.com.csr -keyout ihredomain.com.key

Linux:

openssl req -new -newkey rsa:4096 -nodes -sha256 -out ihredomain.com.csr -keyout ihredomain.com.key

Folgende Ausgabe sollte auf dem Bildschirm erscheinen

# Generating a 4096 bit RSA private key
# ...............................................++++++
# ............................++++++
# writing new private key to 'ihredomain.com.key'
# -----
# 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.
# -----

Daten für das SSL Zertifikat

Sie werden nun nach Informationen zu Ihrem Zertifikat gefragt.
Diese Daten sind öffentlich sichtbar, sobald das Zertifikat verwendet wird und müssen korrekt sein, damit die Zertifizierungsstelle dieses akzeptiert.

Text in der Zeile
Bedeutung
Beispiel
Zusatz
# Country Name (2 letter code) [AU]:
Die Länderabkürzung Ihres Landes (z.B. DE, AU, CH)
DE 
 
# State or Province Name (full name) [Some-State]: 
Der volle Name Ihres Bundeslandes
Bavaria
Achtung: Umlaute sollten vermieden werden
# Locality Name (eg, city) []:
Der volle Name der Stadt in der Ihre Firma Ihren Sitz hat
Muenchen
Achtung: Umlaute sollten vermieden werden
# Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Der volle Name Ihrer Firma inklusive Unternehmensform
Ihre Firma GmbH
Achtung: Umlaute sollten vermieden werden
# Organizational Unit Name (eg, section) []: 
Dieses Feld kann leer gelassen werden 
 
# Common Name (eg, YOUR name) []:
Dies ist der FQDN des Zertifikats
ftapi.ihredomain.com

Der FQDN entspricht genau der Domäne für Ihren FTAPI Server (siehe auch Systemvoraussetzungen-Zertifikat)

FQDN für ein Wildcard Zertifikat

Wenn Sie ein Wildcard Zertifkat beantragen wollen, dann verwenden Sie für den entsprechenden Wildcard Character einen *

Zum Beispiel: *.ftapi.com

# Email Address []: 

Hierbei sollte es sich um einen Email Verteiler Ihrer IT handeln.
Es ist generell das Beste an dieser Stelle eine der Domänen Administartions Adressen zu verwenden:

webmaster@domäne.com, hostmaster@domäne.com, admin@domäne.com

Bitte stellen Sie sicher, dass auf die Emails dieses Postfachs zugegriffen werden kann (entweder per Email Verteiler oder direkt) 

admin@ihredomain.com
 
# A challenge password []:
Dieser Wert wird von manchen Zertifizierungsstellen bemängelt, wenn er nicht leer ist.
Darum hier am besten nichts eintragen. 
  
# An optional company name []:
Hier noch einmal den Namen die Firma, wie bereits weiter oben, eintragen.
Ihre Firma GmbH
 

Hier die entsprechenden Werte aus der obigen Tabelle eingefüllt:

Das CSR und der private Key

private Key

Dieser Schlüssel muss gut aufgehoben werden, da er für die Verwendung des Zertifikats benötigt wird.

Wie der Name schon vermuten lässt sollte er außerdem an einem sicheren Ort verwahrt werden (z.B. auf dem FTAPI Server) und nicht öffentlich zugänglich sein.

Das CSR

Um ein Zertifikat zu bekommen muss dieses bei einer Zertifizierungsstellen gekauft werden.
Diese CA braucht dann das CSR um es entsprechend signieren zu können.

Mögliche Zertifizierungsstellen sind zum Beispiel: thawte, Telekom oder GlobalTrust

Sollten Sie Unterstüzung bei der Bestellung des Zertifikats benötigen wenden Sie sich gerne an uns: support@ftapi.com

B) Zertifikat einbinden

1.) Konvertieren des Zertifikats in eine .pfx Datei

Hierfür kopieren Sie die Datei mit dem privaten Schlüssel und die Datei, die Sie von Ihrer Zertifizerungsstelle erhalten haben (zum Beispiel: certificate.cer) in den bin Ordner von OpenSSL (gleicher Ordner wie beim Erstellen des Zertifikats)

Das Zertifikat kann in einem dieser Formate vorliegen: .cer.crt.pem.txt
Genauer: Das Zertifikat muss im plaintext vorliegen (das können Sie überprüfen, indem Sie es in einem Texteditor öffnen) 

Dies könnte dann so aussehen:

Nun führen sie als Administrator die Windows Kommandozeile cmd aus. Hier in das bin Verzeichnis von OpenSSL wechseln

cd "C:\Program Files\OpenSSL-Win64\bin"

Führen Sie nun das folgende Kommando aus (ersetzen Sie die entsprechenden Dateinamen):

openssl pkcs12 -export -in certificate.cer -inkey privateKey.key -out ftapi.ihredomain.com.pfx

Die hieraus entstehende .pfx Datei ist die Datei, die wir ab jetzt weiter verwenden.

2.) Inkludieren der SSL-Zertifikatskette

Warum brauchen wir die volle Zertifikatskette?

Für unsere Clients ist es unumgänglich, dass bei dem SSL Zertifikat die komplette Kette enthalten ist, da diese sonst keine SSL Verbindung mit dem Server aufbauen können

Zertifikat importieren

Installieren Sie das Zertifikat mit einem Doppelklick auf die Keystore-Datei.
Wählen Sie hier einfach die Standards aus.

Sobald Sie die Option haben, den key als exportierbar zu markieren, wählen Sie diese Option aus

Zertifikat exportieren

Erinnerung

Damit das Zertifikat an dieser Stelle exportiert werden kann, muss es zuvor installiert worden sein.
Wichtig ist, dass es inklusive dem private Key installiert wurde. 

Sobald das Zertifikat auf Ihrem PC installiert ist, können Sie es wieder exportieren:

Gehen Sie im IE auf das Zahnrad oben rechts und wählen Sie dann "Internetoptionen" aus.

In den Internetoptionen wählen Sie den Reiter "Inhalte" und klicken Sie auf "Zertifikate".

Im sich nun öffnenden Fenster, wählen Sie aus der Liste das entsprechende Zertifikat aus und klicken sie auf "Exportieren...".

Wählen sie im Zertifikatexport-Assistent "Ja, privaten Schlüssel exportieren".

Wählen Sie "Privater Informationsaustausch" und setzen Sie das Häckchen bei "Wenn möglich, alle Zertifikate im Zertifizierungspfad einbeziehen".

Wählen Sie ein Kennwort. Dieses Kennwort gilt nur im Zusammenhang mit dieser .pfx-Datei und wird im Klartext auf dem FTAPI-Server hinterlegt.

Wählen Sie einen Dateinamen.

Eindeutiger Dateiname

Wählen Sie als Dateinamen <URL>-chain.pfx

Mit dieser Namensgebung ist eindeutig um welches Zertifikat es sich handelt und es kann keine Verwechslung geben.

3.) Importieren des Zertifikats in den FTAPI Server

Stoppen Sie zuerst den FTAPI-Server.

Legen Sie dann Ihre eben erstellte oder bereits vorhandene .pfx-Datei in dem Verzeichnis ihrftapiverzeichnis/ftapi-server/conf/ ab.

Ändern Sie nun in der Datei  ihrftapiverzeichnis/ftapi-server/conf/server.xml beim <Connector>-Eintrag die Einträge keystoreFile="conf/dateiname" und keystorePass="passwort".

Tragen Sie für "dateiname" den Namen Ihrer Zertifikatsdatei ein (inklusive Dateiendung), und bei "passwort" das Passwort, das Sie beim Export im IE angegeben haben.

Starten Sie nun den FTAPI-Server neu.

Die fertige Datei könnte so aussehen:

 <Connector port="80" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="443" server="" xpoweredBy="false" />
               
    <Connector port="443" protocol="org.apache.coyote.http11.Http11Protocol"
            SSLEnabled="true" maxThreads="150" scheme="https" secure="true"
            clientAuth="false" sslProtocol="TLS"
            keystoreFile="conf/<ihrepkcs12datei.pfx>"
            keystorePass="ihrpasswort" keystoreType="pkcs12" server="" xpoweredBy="false"/>

Beim Einbinden der pfx Datei kommt ein Fehler und der Server ist nicht verfügbar

Es kann notwendig sein den Zertifikats Typen mit anzugeben.
Da dies nicht immer notwendig ist, empfehlen wir, dies auch nur dann zu nutzen, wenn es notwendig ist.

Tragen Sie (wie oben zu sehen) den keystore Typ als extra Wert ein:

keystoreType="pkcs12"

C) Konvertierung eines SSL Zertifikats in unterschiedliche Formate

1.  Zertifikat konvertieren mit Keytool (mit JDK 6 oder höher)

Ihre Zertifikats Datei wird nachfolgend als certificate.* bezeichnet.

  • JKS → P12
keytool -importkeystore -srckeystore certificate.jks -srcstoretype JKS -deststoretype PKCS12 -destkeystore certificate.p12

  • P12 → JKS
keytool -importkeystore -srckeystore certificate.p12 -srcstoretype PKCS12 -deststoretype JKS -destkeystore certificate.jks

2.  Zertifikat konvertieren mit OpenSSL

  • PEM nach DER
openssl x509 -outform der -in certificate.pem -out certificate.der
  • PEM nach P7B
openssl crl2pkcs7 -nocrl -certfile certificate.cer -out certificate.p7b -certfile CACert.cer
  • PEM nach PKCS12 (P12)
openssl pkcs12 -export -out certificate.p12 -inkey userkey.pem -in usercert.pem
  • PEM nach PFX
openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt
  • DER nach PEM
openssl x509 -inform der -in certificate.cer -out certificate.pem
  • P7B nach PEM
openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer
  • P7B nach PFX
openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer
openssl pkcs12 -export -in certificate.cer -inkey privateKey.key -out certificate.pfx -certfile CACert.cer
  • PFX nach PEM
openssl pkcs12 -in certificate.pfx -out certificate.cer -nodes
  • No labels