Server (Tarifwerk): Unterschied zwischen den Versionen

Aus Wiki - Heidler Strichcode GmbH
Zur Navigation springen Zur Suche springen
 
Zeile 10: Zeile 10:
 
== HTTPS ==
 
== HTTPS ==
  
Das Tarifwerk unterstützt die Übertragung via HTTPS sofern Sie ein Zertifikat bereitstellen. Bitte beachten Sie jedoch, dass die Reaktionszeit per HTTPS langsamer ist als per HTTP. Interne Tests ergaben eine Verzögerung von ca. 2 - 10ms pro Anfrage.
+
Das Tarifwerk unterstützt die Übertragung via HTTPS, sofern Sie ein Zertifikat bereitstellen. Bitte beachten Sie jedoch, dass die Reaktionszeit per HTTPS langsamer ist als per HTTP. Interne Tests ergaben eine Verzögerung von ca. 2 - 10ms pro Anfrage.
 
 
=== Port ===
 
 
 
HTTPS benötigt einen eigenen Port um Verbindungen zu akzeptieren.
 
 
 
=== Keystore ===
 
 
 
Jede HTTPS Verbindung benötigt ein Zertifikat, welches Sie bereitstellen müssen.
 
  
 
Das Tarifwerk kommt standardmäßig mit einem eigens signierten Zertifikat für die IP 127.0.0.1 damit Sie vorab die Funktionalität testen können. <u>'''Dies ist nicht für die produktive Nutzung vorgesehen!'''</u>
 
Das Tarifwerk kommt standardmäßig mit einem eigens signierten Zertifikat für die IP 127.0.0.1 damit Sie vorab die Funktionalität testen können. <u>'''Dies ist nicht für die produktive Nutzung vorgesehen!'''</u>
  
Für eine produktive Nutzung müssen Sie ein gültiges Zertifikat in einem&nbsp;Java-kompatiblen Keystore&nbsp;hinterlegen.
+
Für eine produktive Nutzung müssen Sie ein gültiges Zertifikat im X.509 Format hinterlegen.
  
== Erstellen eines Keystores für HTTPS ==
+
=== Port ===
  
Sie können mit dem keytool, welches mit einer aktuellen Version der JRE mitgeliefert wird, sowohl ein certificate signing request (CSR) erstellen oder ein bereits signiertes Zertifikat importieren.
+
HTTPS benötigt einen eigenen Port um Verbindungen zu akzeptieren.
  
Weitere Informationen zum keytool finden Sie hier:&nbsp;[https://docs.oracle.com/javase/8/docs/technotes/tools/windows/keytool.html https://docs.oracle.com/javase/8/docs/technotes/tools/windows/keytool.html]
+
=== Zertifikat Datei ===
  
=== Erstellen eines Keystores ===
+
Pfad des zu veröffentlichenden Zertifkates im X.509 Format.
  
Zunächst müssen Sie einen Keystore erstellen.
+
=== Private-Key Datei ===
  
Das folgende Beispiel beschreibt das Vorgehen zum Erstellen eines beispielhaften Keystores. '''<u>Die Befehle&nbsp;sollten niemals 1:1 kopiert werden!</u>'''
+
Pfad der Datei, welche den private key im PKCS #8 Format enthält.
<pre>keytool -genkey -alias 127.0.0.1 -keyalg RSA -keystore srvKeyStore -keysize 2048
 
  
Keystore-Kennwort eingeben: <keystorepw>
+
== Server IP ==
Neues Kennwort erneut eingeben: <keystorepw>
 
Wie lautet Ihr Vor- und Nachname?
 
&nbsp; [Unknown]: &nbsp;127.0.0.1
 
Wie lautet der Name Ihrer organisatorischen Einheit?
 
&nbsp; [Unknown]: &nbsp;Dev
 
Wie lautet der Name Ihrer Organisation?
 
&nbsp; [Unknown]: &nbsp;Heidler Strichcode GmbH
 
Wie lautet der Name Ihrer Stadt oder Gemeinde?
 
&nbsp; [Unknown]: &nbsp;Wolfschlugen
 
Wie lautet der Name Ihres Bundeslands?
 
&nbsp; [Unknown]: &nbsp;Baden Wuerttemberg
 
Wie lautet der Ländercode (zwei Buchstaben) für diese Einheit?
 
&nbsp; [Unknown]: &nbsp;DE
 
Ist CN=127.0.0.1, OU=Dev, O=Heidler Strichcode GmbH, L=Wolfschlugen, ST=Baden Wuerttemberg, C=DE richtig?
 
&nbsp; [Nein]: &nbsp;ja
 
  
Schlüsselkennwort für <127.0.0.1> eingeben
+
Im Normalfall kann dieses Feld leer bleiben, da das Tarifwerk die eigene IP selbst ermitteln kann.
&nbsp; &nbsp; &nbsp; &nbsp; (RETURN, wenn identisch mit Keystore-Kennwort): <keypass>
 
Neues Kennwort erneut eingeben: <keypass>
 
</pre>
 
  
Es wurde ein Keystore in der Datei srvKeyStore erstellt für die Domain 127.0.0.1 mit dem Keystore Passwort&nbsp;<keystorepw> und dem Schlüssel Passwort&nbsp;<keypass>
+
Sofern der Server aber über mehrere Netzwerkinterfaces verfügt, kann dieser Vorgang fehlschlagen. In diesem Fall tragen Sie hier bitte die IP des Servers ein.
  
=== Erstellen eines CSR ===
+
== Erstellen eines selbst signierten Zertifikats ==
  
Als Nächstes müssen Sie eine Zertifizierungsanfrage (CSR)&nbsp;erstellen, welche Sie dann an eine vertrauenswürdige Stammzertifizierungsstelle schicken.
+
Das folgende Beispiel beschreibt das Vorgehen zum Erstellen eines selbst signierten Zertifikats mithilfe des externen Tools OpenSSL. '''<u>Die Befehle&nbsp;sollten niemals 1:1 kopiert werden!</u>'''
<pre>keytool -certreq -alias 127.0.0.1 -keystore srvKeyStore -file request.csr
 
Keystore-Kennwort eingeben: <keystorepw>
 
Schlüsselkennwort für <127.0.0.1> eingeben <keypass></pre>
 
  
Die Zertifizierungsanfrage wurde in die Datei request.csr geschrieben.
 
  
=== Signieren des CSR ===
+
Der folgende Befehl erstellt ein neues Zertifikat mit einer Gültigkeit von 4 Jahren und schreibt es in die Datei cert.pem. Der private key wird in die Datei key.pem geschrieben
  
Das Signieren muss von einer vertrauenswürdigen Stammzertifizierungsstelle erfolgen. Meist bekommen Sie das signierte Zertifikat im Format *.crt.
+
<pre>openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 1460
  
Zum Testen und selbst Signieren&nbsp;können Sie aber auch Open-Source Tools wie openssl verwenden.
+
Generating a 4096 bit RSA private key
 +
.....................................................................++
 +
..................................................................................................................++
 +
writing new private key to 'key.pem'
 +
Enter PEM pass phrase: <pempass>
 +
</pre>
  
=== Import in den Keystore ===
+
Es werden nun die Details zu diesem Zertifikat abgefragt, bitte füllen Sie diese nach eigenem ermessen aus.
  
Für den Import in den lokalen Keystore müssen vorher alle Zertifikate&nbsp;aller Zertifizierungsstellen in der Zertifizierungskette importiert werden:
+
Der ''Common Name'' bzw. FQDN - Fully qualified domain name - ist die IP, auf welches das Zertifikat ausgeschrieben werden soll.
<pre>keytool -importcert -file cacert.crt -keystore srvKeyStore -alias cacert
+
<pre>
Keystore-Kennwort eingeben: <keystorepw>
+
-----
 +
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) [AU]:DE
 +
State or Province Name (full name) [Some-State]:
 +
Locality Name (eg, city) []:Wolfschlugen
 +
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Heidler Strichcode GmbH
 +
Organizational Unit Name (eg, section) []:dev
 +
Common Name (e.g. server FQDN or YOUR name) []:127.0.0.1
 +
Email Address []:
 +
</pre>
  
[...]Es werden Informationen zum Zertifikat angezeigt[...]
 
  
Diesem Zertifikat vertrauen? [Nein]:  ja
+
Danach muss der Private key, welcher in die Datei key.pem geschrieben wurde, in das PCKS #8 Format konvertiert werden.
Zertifikat wurde Keystore hinzugefügt</pre>
 
  
Wenn alle Zertifizierungsstellen importiert wurden, können Sie nun Ihr signiertes Zertifikat importieren.
+
<pre>
<pre>keytool -importcert -file server.crt -keystore srvKeyStore -alias 127.0.0.1
+
openssl pkcs8 -topk8 -inform PEM -outform DER -in key.pem -out private_pcks8.der -nocrypt
Keystore-Kennwort eingeben: <keystorepw>
+
Enter pass phrase for key.pem: <pempass>
Schlüsselkennwort für <127.0.0.1> eingeben <keypass>
+
</pre>
Zertifikatantwort wurde in Keystore installiert</pre>
 
 
 
Fertig. Sie haben nun einen gültigen Keystore. Sie müssen die Datei <srvKeyStore> an einen sicheren Ort kopieren, auf die das Tarifwerk zugreifen kann und die drei Felder in der HTTPS-Konfiguration des Tarifwerks korrekt ausfüllen.
 

Aktuelle Version vom 25. April 2018, 17:41 Uhr

Tw logo server.png

Den Menüpunkt Server finden Sie im Tarifwerk-Konfigurator über die Einstellungen.

In den Servereinstellungen können Sie wählen, auf welche Protokolle und Ports das Tarifwerk hören soll. Standardmäßig ist der HTTP Server aktiv auf Port 9500.

HTTP

TW Server.png

Sie können durch das Häkchen bei HTTP den HTTP Server aktivieren. Unter Port können Sie den Port wählen, auf welchem das Tarifwerk hören soll.

HTTPS

Das Tarifwerk unterstützt die Übertragung via HTTPS, sofern Sie ein Zertifikat bereitstellen. Bitte beachten Sie jedoch, dass die Reaktionszeit per HTTPS langsamer ist als per HTTP. Interne Tests ergaben eine Verzögerung von ca. 2 - 10ms pro Anfrage.

Das Tarifwerk kommt standardmäßig mit einem eigens signierten Zertifikat für die IP 127.0.0.1 damit Sie vorab die Funktionalität testen können. Dies ist nicht für die produktive Nutzung vorgesehen!

Für eine produktive Nutzung müssen Sie ein gültiges Zertifikat im X.509 Format hinterlegen.

Port

HTTPS benötigt einen eigenen Port um Verbindungen zu akzeptieren.

Zertifikat Datei

Pfad des zu veröffentlichenden Zertifkates im X.509 Format.

Private-Key Datei

Pfad der Datei, welche den private key im PKCS #8 Format enthält.

Server IP

Im Normalfall kann dieses Feld leer bleiben, da das Tarifwerk die eigene IP selbst ermitteln kann.

Sofern der Server aber über mehrere Netzwerkinterfaces verfügt, kann dieser Vorgang fehlschlagen. In diesem Fall tragen Sie hier bitte die IP des Servers ein.

Erstellen eines selbst signierten Zertifikats

Das folgende Beispiel beschreibt das Vorgehen zum Erstellen eines selbst signierten Zertifikats mithilfe des externen Tools OpenSSL. Die Befehle sollten niemals 1:1 kopiert werden!


Der folgende Befehl erstellt ein neues Zertifikat mit einer Gültigkeit von 4 Jahren und schreibt es in die Datei cert.pem. Der private key wird in die Datei key.pem geschrieben

openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 1460

Generating a 4096 bit RSA private key
.....................................................................++
..................................................................................................................++
writing new private key to 'key.pem'
Enter PEM pass phrase: <pempass>

Es werden nun die Details zu diesem Zertifikat abgefragt, bitte füllen Sie diese nach eigenem ermessen aus.

Der Common Name bzw. FQDN - Fully qualified domain name - ist die IP, auf welches das Zertifikat ausgeschrieben werden soll.

-----
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) [AU]:DE
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:Wolfschlugen
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Heidler Strichcode GmbH
Organizational Unit Name (eg, section) []:dev
Common Name (e.g. server FQDN or YOUR name) []:127.0.0.1
Email Address []:


Danach muss der Private key, welcher in die Datei key.pem geschrieben wurde, in das PCKS #8 Format konvertiert werden.

openssl pkcs8 -topk8 -inform PEM -outform DER -in key.pem -out private_pcks8.der -nocrypt
Enter pass phrase for key.pem: <pempass>