Aceite de Requisições sem SNI

No canto superior direito da tela Inbound Address existe o botão Allow non-SNI clients, que vem desabilitado por padrão. Quando habilitado, o gateway é configurado para aceitar requisições que não incluam SNI (server name indication). Ao manter desabilitado, só são aceitas requisições que incluem SNI.

O que é SNI?

SNI é parte do protocolo TLS e foi implementado para possibilitar conexão segura com certificados dedicados em casos de virtual hosting (ou seja, quando múltiplos host names — ou servidores virtuais — compartilham o mesmo IP/servidor). Os servidores virtuais apresentavam um problema para TLS pois o handshake TLS acontece antes da sessão HTTP (que é quando o servidor entende qual o endereço específico que está sendo acessado). O que o SNI faz é adicionar a informação de qual host name (ou servidor virtual) será acessado como parte do processo de handshake; como o servidor sabe qual é o host name logo no handshake, também sabe qual certificado deve apresentar.

É importante ter em mente que o recomendado é somente aceitar requisições que incluam o SNI — ou seja, que indiquem o host name como parte do handshake TLS. Isso porque o SNI foi implementado exatamente para prover maior segurança em casos de virtual hosting, permitindo com que cada servidor virtual tenha seu próprio certificado e o handshake TLS possa acontecer mesmo em casos de compartilhamento de IPs. Além disso, como o SNI já é o padrão recomendado de longa data (foi adicionado à RFC 3546 em 2003), os clientes que não o adotam tendem a ser aplicações bastante legadas. O ideal é que essas aplicações sejam modernizadas para se adequarem aos padrões atuais de segurança.

Se mesmo assim você desejar aceitar requisições que não incluam SNI, habilite o botão Allow non-SNI clients no canto superior direito da tela Inbound Address:

non sni

Quando o botão é habilitado, é preciso confirmar a escolha. Então, será aberta uma janela (ver imagem abaixo) para que você selecione o inbound address que será o servidor padrão. Isso significa que todas as requisições que chegarem e não incluírem o SNI serão tratadas como sendo direcionadas ao inbound address escolhido e o certificado cadastrado para esse inbound address será apresentado durante o handshake TLS. Note que a rota das chamadas não é modificada; o servidor padrão serve apenas para que o certificado do inbound address escolhido seja apresentado. Por esse motivo, sugerimos que o inbound address escolhido como servidor padrão contenha um certificado wildcard, cobrindo os host names que compartilham o mesmo IP.

non sni select

Após escolher o inbound address para ser o servidor padrão, clique em SELECT AND SAVE. Como resultado, o botão Allow non-SNI clients ficará habilitado.

Só é possível escolher um inbound address para ser o servidor padrão. Contudo, é possível substituí-lo a qualquer momento. Para isso, clique no ícone icon settings e selecione outro inbound address na janela modal que aparecerá. O ícone para selecionar outro inbound address só fica ativo para ser clicado quando o botão Allow non-SNI clients estiver habilitado.

É também possível desabilitar a opção a qualquer momento desativando o botão Allow non-SNI clients. Nesse caso, requisições que não incluam o SNI não serão aceitas pelo gateway.

Thanks for your feedback!
EDIT
How useful was this article to you?