isenberg
I'm new here

Ergänzung zum Admin-Handbuch: Konfiguration des HTTPS-Servers

Für wichtige Änderungen, die alle neuen Installationen oder Konfigurationsänderungen am FirstSpirit-Server betreffen, verwende ich nun hier in der Firstspirit Community den Bereich Knowledge-Base. Alle Dokumente zu diesem Thema sind mit dem Stichwort (tag) "admindoc" versehen, um sie einfach auflisten zu können.

Aktualisierung zum ADMI50DE_FirstSpirit_AdminDocumentation.pdf Kapitel 4.7 Konfiguration des HTTPS-Servers.

Betrifft alle FirstSpirit-Versionen seit 5.0.

Der Abschnitt zum HTTPS-Connector in der Datei firstspirit5/conf/fs-webapp.xml muss durch folgenden Text ersetzt werden, dabei ist die Groß/Kleinschreibung der Parameternamen wichtig:

<!--

  HTTPS-Connector

  ===========

  * for additional parameters read http://wiki.eclipse.org/Jetty/Howto/Configure_SSL

  * if NIO is not available, use org.eclipse.jetty.server.ssl.SslSocketConnector

-->

<New id="sslContextFactory" class="org.eclipse.jetty.http.ssl.SslContextFactory">

<Set name="keyStore"><SystemProperty name="cmsroot" />/conf/fs-keystore.p12</Set>
<Set name="keyStorePassword">PASSWORD</Set>
<Set name="keyStoreType">pkcs12</Set>
</New>
<Call name="addConnector">
<Arg><New class="org.eclipse.jetty.server.ssl.SslSelectChannelConnector">
<Arg><Ref id="sslContextFactory"/></Arg>
<Set name="Port">8443</Set>
<Set name="maxIdleTime">30000</Set>
<Set name="Acceptors">2</Set>
<Set name="AcceptQueueSize">100</Set>
</New></Arg>
</Call>

Falls ein Keystore des Typs "JKS" verwendet werden soll, muss "pkcs12" durch "jks" ersetzt werden.

Unter Windows wird statt der Dateiendung .p12 für pkcs12-Dateien auch die Endung .pfx verwendet.

Falls das HTTPS-Zertifikat Zwischenzertifikate benötigt (intermediate certificates), was mittlerweile eigentlich bei allen Zertifizierungsstellen üblich ist und diese noch dem Zertifikatsspeicher hinzugefügt werden müssen, ist folgendes Vorgehen zu empfehlen:

Im Beispiel liegt der geheime Schlüssel und das erhaltene Server-Zertifikat, ohne die Zwischenzertifikate, in der Datei servercert.pfx im Format PKCS12 vor, was das übliche Format für Java-basierte Webserver ist.

Zunächst den geheimen Schlüssel inklusive des Serverzertifikats in das PEM-Format konvertieren:

openssl pkcs12 -export -in servercert.pfx -out serverkeycert.pem

Nun mit einem Texteditor die Datei serverkeycert.pem öffnen und den enthaltenen geheimen Schlüssel (PRIVATE KEY) und das Zertifikate (CERTIFICATE) in jeweils einzelne Dateien serverkey.pem und servercert.pem kopieren, dabei jeweils den Inhalt zwischen den Zeilen "---- BEGIN..." bis "---- END..." und diese Zeilen selbst übernehmen, den Rest entfernen.

Die Zwischenzertifikate liegen im Beispiel in den Dateien intermediate1.pem und intermediate2.pem vor, wobei sich die Zertifizierungskette insgesamt folgendermassen zusammensetzt: Zertifizierungsstelle (CA) -> Intermediate 1 -> Intermediate 2 -> Serverzertifikat

Falls die einzelnen Zertifikate im Format DER vorliegen, z.B. mit Dateiendung .cer oder .crt, also nicht direkt lesbareren ASCII-Text mit Zeilen "---- BEGIN..." enthalten, müssen die einzelnen Dateien zunächst ins PEM-Format konvertiert werden:

openssl x509 –in intermediate1.cer -inform DER –out intermediate1.pem –outform PEM

openssl x509 –in intermediate2.cer -inform DER –out intermediate2.pem –outform PEM

Alle Zertifikate werden jetzt in einer Datei zusammengefasst, wobei die Reihenfolge eingehalten werden muss, die der Zertifizierungskette von der Zertifizierungsstelle bis zum Serverzertifikat entspricht! Falls die Reihenfolge vertauscht wird, zeigt der Server beim Start keine Fehlermeldung an und erst beim Verbindungsaufbau durch Java Webstart wird ein Zertifikatsfehler eingeblendet.

cat intermediate1.pem intermediate2.pem servercert.pem > serverall.pem

Zum Schluß werden der geheime Schlüssel und die Zertifikatskette in einer einzigen PKCS12-Datei zusammengefasst, dabei ein zufälliges Passwort eintragen, was dem in der Datei fs-webapp.xml entspricht:

openssl pkcs12 -export -inkey serverkey.pem -in serverall.pem -out fs-keystore.p12 -passout pass:PASSWORD

Folgende temporäre Dateien sollten wieder entfernt werden: servercert.pem serverkey.pem serverkeycert.pem serverall.pem intermediate1.pem intermediate2.pem

Die Datei fs-keystore.p12 in den Ordner firstspirit5/conf verschieben.