Todos os produtos
Search
Central de documentação

:Como resolver exceções de acesso HTTPS causadas por problemas de compatibilidade com SNI?

Última atualização: Jul 04, 2026

Este tópico descreve como resolver exceções de acesso HTTPS decorrentes de problemas de compatibilidade com Server Name Indication (SNI) entre clientes após a adição dos serviços web correspondentes ao Web Application Firewall (WAF).

Contexto

A hospedagem virtual surgiu para solucionar a escassez de endereços IP. Esse recurso permite que um único servidor HTTP ou HTTPS hospede vários nomes de domínio compartilhando o mesmo endereço IP. Nesse cenário, cada nome de domínio funciona como um host virtual. O servidor distribui as solicitações para os diferentes hosts virtuais com base nos cabeçalhos Host presentes nas requisições do cliente. Por exemplo, antes de acessar um site HTTPS hospedado em um servidor web com hospedagem virtual ativada, o navegador precisa estabelecer uma conexão SSL com o servidor e solicitar o certificado necessário. No entanto, sem SNI, o servidor não identifica qual nome de domínio está sendo acessado e não pode retornar o certificado correto.

O SNI é uma extensão SSL/TLS criada para resolver esse problema. Antes de estabelecer a conexão SSL com o servidor, o navegador envia o hostname que especifica o nome de domínio a ser acessado. Assim, o servidor identifica o domínio e retorna o certificado adequado.

A maioria dos sistemas operacionais e navegadores oferece suporte ao SNI. O OpenSSL 0.9.8 já inclui suporte nativo ao SNI. Versões recentes de servidores NGINX também são compatíveis com essa extensão.

Descrição do problema

Se seu site apresentar exceções de acesso HTTPS após a adição ao WAF, os clientes envolvidos podem não ter suporte ao SNI.

Quando um navegador sem suporte ao SNI acessa um site protegido pelo WAF, o serviço não identifica o nome de domínio específico da solicitação nem obtém o certificado correspondente para interagir com o navegador. Nessa situação, o WAF utiliza o certificado padrão para concluir o processo de handshake com o navegador, o que faz com que o navegador exiba o erro "Certificate not trusted".

Se um cliente não oferecer suporte ao SNI, podem ocorrer os seguintes problemas:

  • Para aplicativos móveis executados no iOS, o acesso ocorre normalmente. Em aplicativos móveis no Android, o acesso falha.

  • Em navegadores, o sistema exibe o erro "Certificate not trusted".

Solução

Capture pacotes de handshake SSL no lado do cliente para verificar se há suporte ao SNI. Neste exemplo, utilizamos o navegador Chrome para acessar o site oficial da Alibaba Cloud.

Se o pacote Client Hello contiver informações de SNI, o cliente tem suporte à extensão.

Caso contrário, o cliente não oferece suporte ao SNI. Recomendações:

  • Atualize seu navegador ou utilize versões mais recentes, como Chrome e Firefox.

  • Em cenários de callback de terceiros, como callbacks do WeChat ou Alipay, utilize o endereço IP do servidor de origem para contornar o WAF.

Compatibilidade com SNI

Nota

O SNI é compatível com TLS 1.0 e versões posteriores, mas não tem suporte em SSL.

  • Os seguintes navegadores desktop oferecem suporte ao SNI:

    • Chrome 5 e versões posteriores

    • Chrome 6 e versões posteriores (Windows XP)

    • Firefox 2 e versões posteriores

    • IE 7 e versões posteriores (no Windows Vista/Server 2008 e posteriores, exceto qualquer versão do IE no Windows XP)

    • Konqueror 4.7 e versões posteriores

    • Opera 8 e versões posteriores

    • Safari 3.0 no Windows Vista/Server 2008 e versões posteriores ou Mac OS X 10.5.6 e versões posteriores

  • As seguintes bibliotecas oferecem suporte ao SNI:

    • GNU TLS

    • Java 7 e versões posteriores (apenas como cliente)

    • HTTP client 4.3.2 e versões posteriores

    • libcurl 7.18.1 e versões posteriores

    • NSS 3.1.1 e versões posteriores

    • OpenSSL 0.9.8j e versões posteriores

    • OpenSSL 0.9.8f e versões posteriores (requer flags)

    • QT 4.8 e versões posteriores

    • Python3, Python 2.7.9 e versões posteriores

  • Os seguintes navegadores móveis oferecem suporte ao SNI:

    • Android Browser no 3.0 Honeycomb e versões posteriores

    • iOS Safari no iOS 4 e versões posteriores

    • Windows Phone 7 e versões posteriores

  • Os seguintes servidores oferecem suporte ao SNI:

    • Apache 2.2.12 e versões posteriores

    • Apache Traffic Server 3.2.0 e versões posteriores

    • HAProxy 1.5 e versões posteriores

    • IIS 8.0 e versões posteriores

    • lighttpd 1.4.24 e versões posteriores

    • LiteSpeed 4.1 e versões posteriores

    • Nginx 0.5.32 e versões posteriores

  • As seguintes interfaces de linha de comando oferecem suporte ao SNI:

    • cURL 7.18.1 e versões posteriores

    • wget 1,14 e versões posteriores