HTTPS-Check

Der HTTPS-Check prüft, ob das BPC nur mit HTTPS erreicht werden kann. Verbindungen mit TLS (HTTPS) sind verschlüsselt und können nur vom Server (BPC) und Client (Nutzer, Webbrowser) gelesen werden. Bei einer unverschlüsselten Verbindung können Dritte evtl. den Inhalt der Kommunikation einsehen und manipulieren.

Vorgehen zur Absicherung

Für die Netzwerkkommunikation verwenden wir die Komponente Pax-Web. Um HTTP zu deaktivieren, können in der zentralen Konfigurationsdatei (bpc.env.sh bzw. bpc.env.cmd) folgende Zeilen gesetzt werden:

  • Unix-Systeme

  • Windows-Systeme

bpc.env.sh
# enable/disable HTTP (org.osgi.service.http.enabled)
export ORG_OPS4J_PAX_WEB_ORG_OSGI_SERVICE_HTTP_ENABLED=false
# enable/disable HTTPS (org.osgi.service.http.secure.enabled)
export ORG_OPS4J_PAX_WEB_ORG_OSGI_SERVICE_HTTP_SECURE_ENABLED=true
bpc.env.cmd
rem enable/disable HTTP (org.osgi.service.http.enabled)
SET ORG_OPS4J_PAX_WEB_ORG_OSGI_SERVICE_HTTP_ENABLED=false
rem enable/disable HTTPS (org.osgi.service.http.secure.enabled)
SET ORG_OPS4J_PAX_WEB_ORG_OSGI_SERVICE_HTTP_SECURE_ENABLED=true

Diese Zeilen sind in der Konfigurationsdatei, welche durch die Installation ausgeliefert wird, schon vorhanden, jedoch auskommentiert.

Einschränkungen des Tests

Typischerweise hört eine Webanwendung nur lokal auf Anfragen, und externe Anfragen werden über einen Reverse-Proxy (z.B. nginx oder HAProxy) an die Anwendung weitergeleitet.

Der Check prüft aber nur die letzte Verbindung zum BPC. Da ein Reverse-Proxy eine externe Komponente ist, kann das BPC hier nicht überprüfen, ob dieser auch nur verschlüsselte Verbindungen zulässt. Es sollte sich daher auch vergewissert werden, dass etwaige eingesetzte Reverse-Proxies nur verschlüsselte Verbindungen zulassen. Weiteres kann in Reverse Proxies nachgelesen werden.

Darüber hinaus gibt der HttpsBaseUrlCheck einen Indikator, ob externe Verbindungen verschlüsselt sind.