Reverse Proxy mit NGINX konfigurieren
- Nutzung eindeutiger Clientzertifikate pro Gerät. Dies wirkt sich weitgehend auf die Kosten aus. Der Vorteil der Sicherheit ist, dass einzelne Geräte für den Zugriff auf den Service blockiert werden können, indem einzelne Zertifikate widerrufen werden.
- Gruppierung ähnlicher Einheiten und Installation eines eindeutigen Zertifikats pro Gruppe. Jedes Gerät in einem Speicher kann ein einzelnes Clientzertifikat verwenden. Diese Gruppierung kann beliebig groß sein und sollte von Ihren Sicherheitsexperten entschieden werden.
- Nutzung eines Reverse-Proxy-Server, der mit einem Clientzertifikat konfiguriert ist, um die Kommunikation mit den Sterling Order Management System -Servern zu verwalten Bei dieser Konfiguration werden Einheiten nicht mit einem Zertifikat konfiguriert, sondern verwenden den Proxy-Server für die Verwaltung der sicheren Verbindung.
Die von Ihnen ausgewählte Option muss von Ihren Sicherheitsexperten überprüft werden, um festzustellen, ob sie den Sicherheitsrichtlinien entspricht und ob sie ein akzeptables Risiko darstellt.
Auf dieser Seite wird nur eine Methode zum Konfigurieren eines Reverse-Proxy-Servers beschrieben. Die Methode implementiert einen Proxy-Server mithilfe eines NGINX-Servers und sollte nur zu Demonstrations-oder Testzwecken berücksichtigt werden. Verwenden Sie das folgende Beispiel nicht in einer Produktionsumgebung. Wenn Sie einen NGINX-Server als Reverse Proxy verwenden möchten, wenden Sie sich an Ihre Sicherheitsexperten, die Sie bei der Vorbereitung der Serverproduktion unterstützen. Alternative Lösungen sind möglich und möglicherweise bereits in Ihrem Netz verfügbar. Wenn Ihr Netz beispielsweise eine F5 -Firewall verwendet, kann es als Reverse Proxy eingerichtet werden. Unabhängig von der Hardware oder Software, die zur Implementierung des Reverse Proxy verwendet wird, ist es wichtig, die Kommunikation zwischen Ihren Einheiten und dem Proxy zu sichern. Weitere Informationen zu diesem Thema sind in diesem Dokument nicht enthalten.
Annahmen
- Sie verwenden das Sterling Order Management System auf der Plattform der nächsten Generation und möchten ein einzelnes Clientzertifikat für alle Sterling Order Management System -Clients in Ihrem Netz erstellen und verwalten.
- Sie verfügen über ein angemessenes Verständnis der Docker -und NGINX-Technologien.
- Sie können das Befehlszeilensystem Linux verwenden.
- Sie haben ein faires Verständnis über die grundlegenden Netzwerkkonzepte.
Voraussetzungen
Vorgehensweise
default.conf
-Dateieinstellungen gelten für NGINX, das direkt auf einem Host installiert ist.- Kopieren Sie NGINX-Dateien auf Ihren lokalen Computer.
- Starten Sie einen temporären Container für die Arbeit mit den NGINX-Konfigurationsdateien.
docker run --name tmp-nginx-container -d nginx
- Extrahieren Sie das Standardverzeichnis
nginx
in einen Ordner auf Ihrem lokalen Computer, z. B.$HOME/nginx
.docker cp tmp-nginx-container:/etc/nginx/$HOME/nginx/tmp/
- Löschen Sie den temporären Container.
docker rm -f tmp-nginx-container
- Starten Sie einen temporären Container für die Arbeit mit den NGINX-Konfigurationsdateien.
- Erstellen Sie ein Clientzertifikat in der Sterling Order Management System -Umgebung.
- Generieren Sie im Self Service ein Client-Zertifikat für die Umgebung und speichern Sie das Zertifikat in Ihrem lokalen Verzeichnis, z. B.
$HOME/nginx
. - Führen Sie den folgenden Befehl aus, um den Schlüssel und das Zertifikat als
.pem
-Dateien zu extrahieren und das Kennwort anzugeben, wenn Sie dazu aufgefordert werden.cd $HOME/nginx openssl pkcs12 -in $FILENAME.p12 -nokeys -out client.pem openssl pkcs12 -in $FILENAME.p12 -nocerts -nodes -out client.key
- Generieren Sie im Self Service ein Client-Zertifikat für die Umgebung und speichern Sie das Zertifikat in Ihrem lokalen Verzeichnis, z. B.
- Erstellen Sie mit OpenSSLein selbst signiertes Zertifikat für NGINX.
cd $HOME/nginx openssl req -newkey rsa:2048 -nodes -keyout key.pem -x509 -days 365 -out certificate.pem
- Konfigurieren Sie NGINX.
- Öffnen Sie in einem Texteditor
$HOME/nginx/conf.d/default.conf
und löschen Sie die vorhandenen Konfigurationen. - Kopieren Sie die folgende Konfiguration in
$HOME/nginx/conf.d/default.conf
und ersetzen Sie die URL in den beiden Feldernproxy_pass
durch eine geeignete URL für Ihre Umgebung.server { listen 80; listen [::]:80; server_name localhost; location / { proxy_pass https://EXAMPLE-prod-4.oms.supply-chain.ibm.com/; proxy_ssl_server_name on; proxy_http_version 1.1; proxy_ssl_certificate /etc/nginx/client.pem; proxy_ssl_certificate_key /etc/nginx/client.key; proxy_ssl_session_reuse on; ###### ## Settings specific to a Docker container mapped to non-80/443 port on host absolute_redirect off; } } server { listen 443 ssl; listen [::]:443 ssl; server_name localhost; ssl_certificate /etc/nginx/certificate.pem; ssl_certificate_key /etc/nginx/key.pem; ssl_protocols TLSv1.2; ssl_ciphers HIGH:!aNULL:!MD5; location / { proxy_pass https://EXAMPLE-prod-4.oms.supply-chain.ibm.com/; proxy_ssl_server_name on; proxy_http_version 1.1; proxy_ssl_certificate /etc/nginx/client.pem; proxy_ssl_certificate_key /etc/nginx/client.key; proxy_ssl_session_reuse on; ###### ## Settings specific to a Docker container mapped to non-80/443 port on host absolute_redirect off; } }
- Öffnen Sie in einem Texteditor
- Starten Sie einen NGINX-Container mit Optionen für SSL-und Nicht-SSL-Ports und einen Datenträger, der auf das Verzeichnis
$HOME/nginx
auf dem Host verweist, der/etc/nginx/
innerhalb des Containers zugeordnet ist.docker run --name nginx -p 9080:80 -p 9443:443 --rm -v $HOME/nginx:/etc/nginx/:Z nginx
- Überprüfen Sie die Konfiguration.
- Greifen Sie in einem Browser über eine der folgenden URLs auf NGINX zu:
http://localhost:9080/smcfs/console/login.jsp https://localhost:9443/smcfs/console/login.jsp
- Vergewissern Sie sich, dass der Browser eine Weiterleitung an die Sterling Order Management System -Umgebung durchführt und Sie nicht zur Angabe eines Clientzertifikats auffordert.
- Melden Sie sich an der Konsole von Sterling Order Management System an und bestätigen Sie, dass der Browser Sie zur Homepage der Sterling Order Management System -Konsole weiterleitet.
- Wiederholen Sie diese Schritte mit URLs für alle anderen Anwendungen in Ihrer Sterling Order Management System -Umgebung.
- Greifen Sie in einem Browser über eine der folgenden URLs auf NGINX zu: