O NGINX e o NGINX Plus oferecem diversos recursos que permitem atender à maioria dos requisitos de SSL/TLS. Eles usam o OpenSSL e a capacidade dos chips de processadores convencionais para proporcionar desempenho de SSL/TLS com boa relação custo-benefício. À medida que a capacidade desses chips continua aumentando e os fabricantes passam a oferecer suporte à aceleração criptográfica, a vantagem de custo do uso de chips de processadores convencionais em relação a chips especializados em SSL/TLS também continua crescendo.

Há três casos de uso principais para o NGINX e o NGINX Plus com SSL/TLS.
Descarregamento de SSL/TLS
Quando o NGINX é usado como proxy, ele pode retirar dos servidores de backend o processamento da descriptografia SSL. Há várias vantagens em realizar a descriptografia no proxy:
- Melhor desempenho – O maior impacto no desempenho durante a descriptografia SSL ocorre no handshake inicial. Para melhorar o desempenho, o servidor responsável pela descriptografia armazena em cache os IDs de sessão SSL e gerencia os tíquetes de sessão TLS. Quando isso é feito no proxy, todas as solicitações do mesmo cliente podem usar os valores armazenados em cache. Quando é feito nos servidores de backend, o cliente precisa se autenticar novamente sempre que suas solicitações são direcionadas a um servidor diferente. O uso de tíquetes TLS pode ajudar a atenuar esse problema, mas eles não são compatíveis com todos os clientes e podem ser difíceis de configurar e gerenciar.
- Melhor utilização dos servidores de backend – O processamento de SSL/TLS exige muitos recursos da CPU, e essa demanda aumenta à medida que o tamanho das chaves cresce. Remover essa carga dos servidores de backend permite que eles se concentrem no que fazem com mais eficiência: fornecer conteúdo.
- Roteamento inteligente – Ao descriptografar o tráfego, o proxy obtém acesso ao conteúdo da solicitação, como cabeçalhos, URI e outros dados, e pode usá-los para encaminhar as solicitações.
- Gerenciamento de certificados – Os certificados só precisam ser adquiridos e instalados nos servidores proxy, e não em todos os servidores de back-end. Isso economiza tempo e dinheiro.
- Patches de segurança – Se surgirem vulnerabilidades na pilha SSL/TLS, os patches apropriados precisarão ser aplicados apenas aos servidores proxy.
Para mais detalhes, consulte Terminação SSL do NGINX no Guia de Administração do NGINX Plus.
Criptografia SSL/TLS para os servidores de origem
Em alguns casos, pode ser necessário que o NGINX criptografe o tráfego enviado aos servidores de backend. Essas solicitações podem chegar ao servidor NGINX como texto simples ou como tráfego criptografado, que o NGINX precisa descriptografar para tomar uma decisão de roteamento. O uso de um pool de conexões keepalive com os servidores de backend reduz o número de handshakes SSL/TLS e, assim, maximiza o desempenho do SSL/TLS. Isso é feito de forma muito simples, configurando o NGINX para encaminhar as solicitações via “https”, de modo que ele criptografe automaticamente o tráfego que ainda não esteja criptografado.
Criptografia de ponta a ponta
Como o NGINX pode realizar tanto a descriptografia quanto a criptografia, é possível obter criptografia de ponta a ponta para todas as solicitações, enquanto o NGINX continua tomando decisões de roteamento na Camada 7. Nesse caso, os clientes se comunicam com o NGINX por HTTPS, e ele descriptografa as solicitações e as criptografa novamente antes de enviá-las aos servidores de backend. Isso pode ser desejável quando o servidor proxy não está localizado no mesmo data center que os servidores de backend. À medida que mais servidores são migrados para a nuvem, torna-se cada vez mais necessário usar HTTPS entre um proxy e os servidores de backend.
Certificados de cliente
O NGINX pode processar certificados de cliente SSL/TLS e pode ser configurado para torná-los opcionais ou obrigatórios. Os certificados de cliente permitem restringir o acesso aos seus sistemas apenas a clientes pré-aprovados, sem exigir senha. Você pode controlar os certificados adicionando os certificados revogados a uma lista de revogação de certificados (CRL), que o NGINX verifica para determinar se um certificado de cliente ainda é válido.
Recursos adicionais de segurança
Há vários outros recursos que ajudam a dar suporte a esses casos de uso, incluindo, entre outros, os seguintes:
- Vários certificados – Uma única instância do NGINX pode oferecer suporte a vários certificados para diferentes domínios e ser dimensionada para comportar centenas de milhares de certificados. É comum usar uma instância do NGINX para atender a vários endereços IP e domínios, sendo que cada domínio exige seu próprio certificado.
- Grampos OCSP – Quando esse recurso está habilitado, o NGINX inclui uma resposta OCSP com carimbo de data e hora, assinada pela autoridade certificadora, que o cliente pode usar para verificar o certificado do servidor, evitando a perda de desempenho causada pelo contato direto com o servidor OCSP.
- Cifras SSL/TLS – Você pode especificar quais cifras estão habilitadas.
- Protocolos SSL/TLS – Você pode especificar quais protocolos estão habilitados, incluindo SSLv2, SSLv3, TLSv1, TLSv1.1 e TLSv1.2.
- Certificados encadeados – O NGINX oferece suporte a cadeias de certificados, usadas quando o certificado do site não é assinado diretamente pelo certificado raiz de uma AC (Autoridade Certificadora), mas por uma série de certificados intermediários. O servidor web apresenta uma “cadeia de certificados” contendo os certificados intermediários, para que o cliente web possa verificar a cadeia de confiança que vincula o certificado do site a um certificado raiz confiável.
- Otimizações do servidor HTTPS – O NGINX pode ser ajustado para maximizar o desempenho de SSL/TLS por meio da configuração do número de processos de trabalho, do uso de conexões keepalive e de um cache de sessão SSL/TLS.
Para mais detalhes, confira estes recursos:
- Terminação SSL do NGINX no Guia de Administração do NGINX Plus
- Configurando servidores HTTPS no nginx.org
- ngx_http_ssl_module documentação de referência no nginx.org
Exemplos
Veja alguns exemplos dos recursos de segurança do NGINX. Esses exemplos pressupõem conhecimentos básicos sobre a configuração do NGINX.
A configuração a seguir processa o tráfego HTTP de www.example.com e o encaminha por proxy para um grupo de servidores upstream:
upstream backends {
server 192.168.100.100:80;
server 192.168.100.101:80;
}
server {
listen 80;
server_name www.example.com;
location / {
proxy_pass http://backends;
}
}Agora, adicione suporte a HTTPS para que o NGINX descriptografe o tráfego usando o certificado e a chave privada e se comunique com os servidores de backend por HTTP:
upstream backends {
server 192.168.100.100:80;
server 192.168.100.101:80;
}
server {
listen 80;
listen 443 ssl; # 'ssl' parameter tells NGINX to decrypt the traffic
server_name www.example.com;
ssl_certificate www.example.com.crt; # The certificate file
ssl_certificate_key www.example.com.key; # The private key file
location / {
proxy_pass http://backends;
}
}Ou, se em vez disso você receber tráfego por HTTP e enviá-lo aos servidores de backend por HTTPS:
upstream backends {
server 192.168.100.100:443;
server 192.168.100.101:443;
}
server {
listen 80;
server_name www.example.com;
location / {
proxy_pass https://backends; # 'https' prefix tells NGINX to encrypt the traffic
}
}Para experimentar o NGINX Plus, comece hoje mesmo sua avaliação gratuita de 30 dias today or entre em contato conosco para conversar sobre seus casos de uso.
Sobre o autor

Publicações relacionadas no blog

Como o F5 NGINX One aprimora o gerenciamento e a observabilidade
Descubra como o F5 NGINX One aprimora o gerenciamento e a observabilidade de ambientes híbridos e multicloud ao oferecer um console web centralizado baseado em SaaS, com insights em tempo real, conformidade automatizada e gerenciamento simplificado de configurações.

Do OpenAPI ao NGINX como gateway de API usando uma API declarativa
Descubra como transformar uma definição de esquema OpenAPI em uma configuração NGINX totalmente funcional, operando como um API Gateway com a segurança de um Web Application Firewall e um Portal do Desenvolvedor, usando uma abordagem declarativa de API.

Como gerenciar picos repentinos de tráfego e sobrecarga do servidor
Picos de tráfego e sobrecarga de servidores são preocupações sérias para varejistas online em qualquer época, mas especialmente durante a “Cyber Season” de compras de fim de ano. Detalhamos como você pode aproveitar as soluções de entrega de aplicações de nível de produção da NGINX para se preparar para aumentos repentinos de tráfego.

Distribuição segura de chaves privadas SSL com o NGINX
Descrevemos três maneiras progressivamente mais seguras de proteger chaves privadas SSL ao configurar o NGINX para processar tráfego HTTPS: permitir acesso de leitura apenas ao usuário root, criptografar as chaves com senhas armazenadas separadamente e distribuir as senhas a partir de um repositório central.
Agrupando solicitações de API em lotes com NGINX Plus e o módulo JavaScript do NGINX
O módulo JavaScript do NGINX lançado com o NGINX Plus R15 oferece suporte a subsolicitações, possibilitando uma classe totalmente nova de casos de uso para o NGINX Plus. Este exemplo completo também usa a API do NGINX Plus e os módulos de chave-valor para converter solicitações de API dos clientes em solicitações separadas para as APIs dos microsserviços que compõem um aplicativo.
Como superar o esgotamento de portas efêmeras no NGINX e no NGINX Plus
Confira dicas para evitar o esgotamento de portas efêmeras com ajustes no kernel do Linux, conexões keepalive e conexões vinculadas dinamicamente a endereços IP locais.