HTTPS verwenden
HTTPS ist ein Protokoll, das die Kommunikation zwischen einem Webbrowser und einem Webserver verschlüsselt und authentifiziert.
Für die Nutzung von HTTPS ist ein Zertifikat erforderlich.
Erstellen von SSL-Zertifikaten
Auch mit einem selbstsignierten Zertifikat werden die meisten Browser das Web Management unter HTTPS als „nicht sicher“ einstufen. Die Verbindung ist dennoch verschlüsselt, die Authentizität der Website kann vom Browser jedoch nicht verifiziert werden.
OPC Router Container mit HTTPS erstellen
Der folgende Befehl gilt für eine Bash-Shell unter Linux oder macOS; $PWD steht dort für das aktuelle Verzeichnis, in dem Zertifikat und Schlüssel liegen.
docker run -d \
-e OR_I_ACCEPT_EULA=true \
-v $PWD/https.pem:/inray/https.pem \
-v $PWD/https.key:/inray/https.key \
-e OR_WEB_HTTPS_CERTIFICATE_PEM_FILE=/inray/https.pem \
-e OR_WEB_HTTPS_CERTIFICATE_KEY_PEM_FILE=/inray/https.key \
-e OR_WEB_DISABLE_HTTPS=false \
-p 443:8443 \
--name opcrouterhttps \
opcrouter/runtime
In der PowerShell unter Windows verwenden Sie stattdessen das Backtick ` als Zeilenfortsetzung und ${PWD} für das aktuelle Verzeichnis.
Mit Ausführen des Befehls stimmen Sie durch das Setzen der Umgebungsvariable OR_I_ACCEPT_EULA auf true den Endbenutzer-Lizenzbedingungen zu.
Die hinzugefügten Volumes mounten das lokale Zertifikat und den lokalen privaten Schlüssel auf dem Host und ermöglichen dem Container den Zugriff darauf. Da es sich um Mounts der lokalen Dateien und nicht um Kopien handelt, kann jede Änderung oder Löschung der Dateien Auswirkungen auf den Container haben. Alternativ können das Zertifikat und der private Schlüssel auch mit dem Befehl docker cp in den Container übertragen werden.
Der Container liest Zertifikat und Schlüssel beim Start ein. Nach einem Zertifikatstausch starten Sie den Container daher neu (docker restart opcrouterhttps), damit das neue Zertifikat verwendet wird.
Die Umgebungsvariablen OR_WEB_HTTPS_CERTIFICATE_PEM_FILE und OR_WEB_HTTPS_CERTIFICATE_KEY_PEM_FILE geben den Pfad zum Zertifikat und zum privaten Schlüssel an. Die Umgebungsvariable OR_WEB_DISABLE_HTTPS wird auf false gesetzt, damit HTTPS verwendet werden kann. Der Standard-HTTPS-Port des OPC Routers (8443) wird nach außen als 443 freigegeben. Das Web Management sollte nun unter https://localhost erreichbar sein.
Der HTTP-Port bleibt dabei nutzbar: Sobald HTTPS verfügbar ist, verweist der über OR_WEB_HTTP_PORT festgelegte Port auf den HTTPS-Port. Im obigen Befehl wird der HTTP-Port nicht veröffentlicht, das Web Management ist also ausschließlich über HTTPS erreichbar. Wenn Sie ihn zusätzlich veröffentlichen möchten, geben Sie ihn mit einem weiteren -p frei – eine Anfrage darauf landet dann auf der HTTPS-Adresse. Eine Übersicht der Port-Variablen finden Sie unter Konfigurierbare Umgebungsvariablen.