Configurazione del proxy inverso con NGINX
- Utilizzo di certificati client univoci per dispositivo. Ciò si ripercuote in larga misura sui costi. Il vantaggio per la sicurezza è che i singoli dispositivi possono essere bloccati dall'accesso al servizio revocando i singoli certificati.
- Raggruppamento di periferiche simili e installazione di un certificato univoco per gruppo. Ogni periferica in un archivio può utilizzare un certificato client singolo. Questo raggruppamento può essere di dimensione arbitraria e deve essere deciso dagli esperti di sicurezza.
- Utilizzo di un server proxy inverso configurato con un certificato client per gestire la comunicazione con i server Sterling Order Management System . Con questa configurazione, i dispositivi non sono configurati con un certificato, ma si basano sul server proxy per gestire la connessione sicura.
L'opzione scelta deve essere riesaminata dagli esperti di sicurezza per determinare se soddisfa le politiche di sicurezza e se si tratta di un rischio accettabile.
Questa pagina copre solo un metodo possibile per configurare un server proxy inverso. Il metodo implementa un server proxy utilizzando un server NGINX e deve essere considerato solo a scopo dimostrativo o di test. Non utilizzare il seguente esempio in un ambiente di produzione. Se si desidera utilizzare un server NGINX come proxy inverso, consultare gli esperti di sicurezza per aiutare a preparare la produzione del server. Le soluzioni alternative sono possibili e potrebbero essere già disponibili nella rete. Ad esempio, se la tua rete sta utilizzando un firewall F5 , è possibile configurarlo come un proxy inverso. Indipendentemente dall'hardware o dal software utilizzato per implementare il proxy inverso, è importante proteggere la comunicazione tra i dispositivi e il proxy. Fornire ulteriori informazioni su questo argomento è fuori ambito per questo documento.
Presupposti
- Si utilizza Sterling Order Management System sulla piattaforma di nuova generazione e si desidera creare e gestire un singolo certificato client per tutti i client Sterling Order Management System nella rete.
- Hai una buona comprensione delle tecnologie Docker e NGINX.
- È possibile utilizzare il sistema di riga comandi Linux .
- Hai una buona comprensione dei concetti di base della rete.
Prerequisiti
Procedura
default.conf sono applicabili a NGINX installato direttamente su un host.- Copiare i file NGINX sul computer locale.
- Avviare un contenitore temporaneo per utilizzare i file di configurazione NGINX.
docker run --name tmp-nginx-container -d nginx - Estrarre la directory
nginxpredefinita in una cartella sul computer locale, ad esempio$HOME/nginx.docker cp tmp-nginx-container:/etc/nginx/$HOME/nginx/tmp/ - Eliminare il contenitore temporaneo.
docker rm -f tmp-nginx-container
- Avviare un contenitore temporaneo per utilizzare i file di configurazione NGINX.
- Creare un certificato client nell'ambiente Sterling Order Management System .
- In Self Service, generare un certificato client per l'ambiente e salvare il certificato nella directory locale, ad esempio
$HOME/nginx. - Immetti questo comando per estrarre la chiave e il certificato come file
.peme fornire la password quando richiesto.cd $HOME/nginx openssl pkcs12 -in $FILENAME.p12 -nokeys -out client.pem openssl pkcs12 -in $FILENAME.p12 -nocerts -nodes -out client.key
- In Self Service, generare un certificato client per l'ambiente e salvare il certificato nella directory locale, ad esempio
- Crea un certificato autofirmato per NGINX utilizzando OpenSSL.
cd $HOME/nginx openssl req -newkey rsa:2048 -nodes -keyout key.pem -x509 -days 365 -out certificate.pem - Configurare NGINX.
- In un editor di testo, aprire
$HOME/nginx/conf.d/default.confed eliminare le configurazioni esistenti. - Copiare la seguente configurazione in
$HOME/nginx/conf.d/default.confe sostituire l' URL in entrambi i campi diproxy_passcon un URL appropriato per il proprio ambiente.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; } }
- In un editor di testo, aprire
- Avviare un contenitore NGINX con le opzioni per le porte SSL e non SSL e un volume che punta alla directory
$HOME/nginxsull'host associato a/etc/nginx/all'interno del contenitore.docker run --name nginx -p 9080:80 -p 9443:443 --rm -v $HOME/nginx:/etc/nginx/:Z nginx - Convalidare la configurazione.
- In un browser, accedere a NGINX utilizzando uno dei seguenti URL:
http://localhost:9080/smcfs/console/login.jsp https://localhost:9443/smcfs/console/login.jsp - Confermare che il browser instrada all'ambiente Sterling Order Management System e non richiede di fornire un certificato client.
- Accedere alla console di Sterling Order Management System e confermare che il browser reindirizza l'utente alla home page della console di Sterling Order Management System .
- Ripetere l'operazione con gli URL per tutte le altre applicazioni nell'ambiente Sterling Order Management System .
- In un browser, accedere a NGINX utilizzando uno dei seguenti URL: