HTTPS-Listener aktivieren (Lobster-Integration und Admin-Konsole)
Folgendes XML-Fragment dient zum Hinzufügen eines HTTPS-Listeners (HTTPS-Connector) in der Konfigurationsdatei ./etc/hub.xml (Lobster-Integration) oder /etc/admin.xml (Admin-Konsole), der im Rahmen des aktuellen HTTP-Servers auf eingehende, per SSL abgesicherte Anfragen wartet. Beachten Sie die unterschiedlichen Werte von refid für Lobster-Integration und die Admin-Konsole.
Version | ./etc/hub.xml | /etc/admin.xml |
|---|---|---|
Vor 4.6.9 sowie ab LDP | Kommunikation und GUI | Nur Admin-Konsole |
4.6.9 bis Ende des 4.6.x-Zweigs (nur bei Neuinstallationen, nicht aber Updates) | Nur Kommunikation (z. B. HTTP, AS2) | Admin-Konsole und GUI |
Binden Sie ein TLS-fähiges Zertifikat in die Lobster-Integration ein. Aktivieren Sie bei der Erstellung eines selbstsignierten Zertifikats im Dialog Neues Zertifikat erzeugen die folgenden Checkboxen:
Signierung
Verschlüsselung
TLS Server
Signierung/Verschl. Vorgabe muss unterstützt werden
Hinweise zur Erstellung und Verwaltung eines Zertifikats für HTTPS-Webserver finden Sie im Kapitel Zertifikate.
Empfohlene Referenzmethode: Verwenden Sie im Parameter <Set name="serverCertSubjectName"> die Notation ksnote:mycertificate. mycertificate entspricht dem Wert, den Sie im Feld Notiz Ihres Zertifikats eingetragen haben.
Bitte ziehen Sie diese Vorgehensweise vor, anstatt die Zertifikats-ID oder den Common Name (CN) anzugeben. Die Zertifikats-ID ändert sich beim Ablauf eines Zertifikats. Common Names sind nicht immer eindeutig.
So vermeiden Sie Namenskonflikte und unnötige Anpassungen an der Konfigurationsdatei. Achten Sie daher auf eindeutige Werte im Feld Notiz.
Hinweis
Wird das angegebene Zertifikat nicht gefunden, wird automatisch das erste gefundene geeignete Zertifikat verwendet. HTTP-Listener und HTTPS-Listener können parallel betrieben werden.
Wichtig
Änderungen an XML-Konfigurationsdateien werden ausschließlich beim Neustart des Integration-Servers eingelesen. Nach jeder Änderung ist daher ein Neustart erforderlich.
<!-- SSL support by authentication service, preferred method -->
<!-- =========================================================== -->
<!-- Add a HTTPS Connector. -->
<!-- Configure an o.e.j.server.ServerConnector with connection -->
<!-- factories for TLS (aka SSL) and HTTP to provide HTTPS. -->
<!-- All accepted TLS connections are wired to a HTTP connection.-->
<!-- -->
<!-- Consult the javadoc of o.e.j.server.ServerConnector, -->
<!-- o.e.j.server.SslConnectionFactory and -->
<!-- o.e.j.server.HttpConnectionFactory for all configuration -->
<!-- that may be set here. -->
<!-- =========================================================== -->
<Call id="httpsConnector" name="addConnector">
<Arg>
<New class="org.eclipse.jetty.server.ServerConnector">
<Arg name="server">
<!-- Use "MainServer" for Lobster Integration and "AdminServer" for Admin Console -->
<Ref refid="MainServer" />
</Arg>
<Arg name="factories">
<Array type="org.eclipse.jetty.server.ConnectionFactory">
<Item>
<New class="org.eclipse.jetty.server.SslConnectionFactory">
<Arg name="next">http/1.1</Arg>
<Arg name="sslContextFactory">
<New class="com.ebd.hub.server.http.jetty.AuthServiceSSLContextFactory">
<!-- <Set name="serverCertSubjectName">*CN=YourCertificateCommonName*</Set> -->
<!-- <Set name="serverCertSubjectName">certid:1574423144929056</Set> -->
<Set name="serverCertSubjectName">ksnote:mycertificate</Set>
<Call name="addExcludeCipherSuites">
<Arg>
<Array type="String">
<Item>.*NULL.*</Item>
<Item>.*RC4.*</Item>
<Item>.*MD5.*</Item>
<Item>.*DES.*</Item>
<Item>.*DSS.*</Item>
</Array>
</Arg>
</Call>
<Call name="addExcludeProtocols">
<Arg>
<Array type="java.lang.String">
<Item>SSL</Item>
<Item>SSLv2</Item>
<Item>SSLv2Hello</Item>
<Item>SSLv3</Item>
</Array>
</Arg>
</Call>
<Set name="renegotiationAllowed">FALSE</Set>
<Set name="IncludeCipherSuites">
<Array type="String">
<Item>TLS_DHE_RSA.*</Item>
<Item>TLS_ECDHE.*</Item>
</Array>
</Set>
</New>
</Arg>
</New>
</Item>
<Item>
<New class="org.eclipse.jetty.server.HttpConnectionFactory">
<Arg name="config">
<Ref refid="sslHttpConfig" />
</Arg>
</New>
</Item>
</Array>
</Arg>
<Set name="port">443</Set>
<Set name="idleTimeout">180000</Set>
</New>
</Arg>
</Call>HTTPS forcieren für Admin-Konsole
Um eine Anmeldung an der Admin-Konsole per HTTPS zu erzwingen, müssen die folgenden zwei Einträge editiert werden.
Konfigurationsdatei ./etc/startup.xml
<!-- admin console: use SSL & port -->
<Call name="setAdminUrlParams"><Arg type="boolean">true</Arg><Arg type="int">443</Arg></Call>Konfigurationsdatei ./etc/webdefault.xml
<!-- redirect to https -->
<security-constraint>
<web-resource-collection>
<web-resource-name>Everything</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>HTTPS-Listener aktivieren (DMZ-Server)
Um HTTPS auf dem DMZ-Server zu aktivieren, führen Sie dieselben Schritte in der Konfigurationsdatei./etc/hub.xml auf dem DMZ-Server durch, wie oben beschrieben. Als Zertifikat wird auch hier ein Zertifikat vom inneren System (Lobster Integration) verwendet.
Let's Encrypt (automatisches Zertifikats-Handling)
Siehe Abschnitt Let's Encrypt/ACME/Certbot (um kostenfrei und automatisch Zertifikate von einer Certificate Authority zu erhalten und zu erneuern).