Configurando o proxy reverso com NGINX
- Utilizando certificados de cliente exclusivos por dispositivo. Isso impacta em grande parte o custo. O benefício para a segurança é que os dispositivos individuais podem ser impedidos de acessar o serviço revogando certificados individuais.
- Agrupando dispositivos semelhantes e instalando um certificado exclusivo por grupo. Cada dispositivo em um armazenamento pode usar um único certificado de cliente Esse agrupamento pode ser arbitrário e deve ser decidido por seus especialistas em segurança.
- Alavancando um servidor proxy reverso configurado com um certificado de cliente para gerenciar a comunicação com os servidores Sterling Order Management System . Com essa configuração, os dispositivos não são configurados com um certificado, mas dependem do servidor proxy para gerenciar a conexão segura.
A opção escolhida deve ser revisada por seus especialistas em segurança para determinar se ela atende às políticas de segurança e se é um risco aceitável.
Esta página abrange apenas um método possível para configurar um servidor proxy reverso O método implementa um servidor proxy usando um servidor NGINX e deve ser considerado apenas para fins de demonstração ou teste. Não use o exemplo a seguir em um ambiente de produção Se você deseja usar um servidor NGINX como um proxy reverso, consulte seus especialistas em segurança para ajudá-lo a obter a produção do servidor pronta. As soluções alternativas são possíveis e podem já estar disponíveis em sua rede. Por exemplo, se sua rede estiver usando um firewall F5 , será possível configurá-lo como um proxy reverso. Independentemente do hardware ou software usado para implementar o proxy reverso, é importante proteger a comunicação entre seus dispositivos e o proxy. Fornecer mais informações sobre este assunto está fora do escopo deste documento.
Premissas
- Você usa o Sterling Order Management System na plataforma da próxima geração e deseja criar e gerenciar um único certificado de cliente de todos os clientes do Sterling Order Management System em sua rede
- Você tem um entendimento justo sobre as tecnologias Docker e NGINX.
- É possível usar o sistema de linha de comandos do Linux
- Você tem um entendimento justo sobre os conceitos básicos de rede..
Pré-requisitos
Procedimento
default.conf são aplicáveis ao NGINX instalado diretamente em um host.- Copie arquivos NGINX para seu computador local.
- Inicie um contêiner temporário para trabalhar com os arquivos de configuração NGINX.
docker run --name tmp-nginx-container -d nginx - Extraia o diretório
nginxpadrão para uma pasta em seu computador local, como$HOME/nginxdocker cp tmp-nginx-container:/etc/nginx/$HOME/nginx/tmp/ - Exclua o contêiner temporário
docker rm -f tmp-nginx-container
- Inicie um contêiner temporário para trabalhar com os arquivos de configuração NGINX.
- Crie um certificado cliente no ambiente do Sterling Order Management System .
- No Self Service, gere um certificado de cliente para o ambiente e salve o certificado em seu diretório local, como
$HOME/nginx. - Execute o comando a seguir para extrair a chave e o certificado como arquivos
.peme fornecer a senha quando solicitado..cd $HOME/nginx openssl pkcs12 -in $FILENAME.p12 -nokeys -out client.pem openssl pkcs12 -in $FILENAME.p12 -nocerts -nodes -out client.key
- No Self Service, gere um certificado de cliente para o ambiente e salve o certificado em seu diretório local, como
- Crie um certificado autoassinado para NGINX usando OpenSSL.
cd $HOME/nginx openssl req -newkey rsa:2048 -nodes -keyout key.pem -x509 -days 365 -out certificate.pem - Configure o NGINX
- Em um editor de texto, abra o
$HOME/nginx/conf.d/default.confe exclua as configurações existentes - Copie a seguinte configuração em
$HOME/nginx/conf.d/default.confe substitua o URL em ambos os campos deproxy_passpor um URL apropriado para seu 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; } }
- Em um editor de texto, abra o
- Inicie um contêiner NGINX com opções para portas SSL e não SSL e um volume que seja apontado para o diretório
$HOME/nginxno host que é mapeado para/etc/nginx/no contêiner.docker run --name nginx -p 9080:80 -p 9443:443 --rm -v $HOME/nginx:/etc/nginx/:Z nginx - Valide a configuração
- Em um navegador, acesse o NGINX usando uma das seguintes URLs:
http://localhost:9080/smcfs/console/login.jsp https://localhost:9443/smcfs/console/login.jsp - Confirme se o navegador roteia para o ambiente do Sterling Order Management System e não solicita que você forneça um certificado de cliente.
- Efetue login no console do Sterling Order Management System e confirme se o navegador o redireciona para a página inicial do console do Sterling Order Management System
- Repita com URLs para todos os outros aplicativos no ambiente do Sterling Order Management System .
- Em um navegador, acesse o NGINX usando uma das seguintes URLs: