Conteúdo

Em ambientes corporativos, é comum que servidores estejam integrados a domínios internos e acessados por nomes DNS específicos ou IPs fixos. Quando se configura o Apache NiFi para operar via HTTPS, especialmente em versões mais recentes como a 2.x, pode surgir um erro crítico ao tentar acessar a interface web:

HTTP ERROR 400 
Invalid SNI URI: https://<servidor>:8443/nifi 
STATUS: 400 
MESSAGE: Invalid SNI

Esse erro está diretamente relacionado ao protocolo TLS, mais especificamente ao recurso chamado SNI (Server Name Indication). O SNI permite que o cliente informe ao servidor qual nome está tentando acessar — e o servidor, por sua vez, valida se esse nome está presente no certificado SSL configurado. Se não estiver, a conexão é rejeitada com o erro 400.

Esse problema é recorrente em máquinas que fazem parte de um domínio, onde o nome DNS usado na URL (ex: server123.empresa.local) não está incluído corretamente no certificado SSL. Também ocorre quando o acesso é feito por IP, mas o certificado não inclui esse IP como uma Subject Alternative Name (SAN).

Por que o erro acontece?

O protocolo TLS permite que o cliente informe ao servidor qual nome ele está tentando acessar — isso é o SNI (Server Name Indication). O Jetty, servidor embutido no NiFi, verifica se o nome informado está presente no certificado. Isso significa que o certificado SSL não contém o nome (FQDN ou IP) usado na URL de acesso. Para evitar esse erro, o certificado precisa incluir todos os nomes possíveis no campo Subject Alternative Name (SAN).

Passo 1: Gerar backup dos arquivos existentes

Antes de qualquer alteração, é essencial preservar os arquivos atuais:

cp /opt/nifi/conf/nifi.properties /opt/nifi/conf/nifi.properties.bkp
cp /opt/nifi/conf/keystore.p12 /opt/nifi/conf/keystore.p12.bkp 
cp /opt/nifi/conf/truststore.p12 /opt/nifi/conf/truststore.p12.bkp

Passo 2: Gerar o certificado autoassinado com SAN

Use o keytool para gerar um keystore com os nomes corretos:

keytool -genkeypair \
  -alias nifi-cert \
  -keyalg RSA \
  -keysize 2048 \
  -validity 365 \
  -keystore /opt/nifi/conf/keystore.p12 \
  -storetype PKCS12 \
  -storepass NifiServer2025xy \
  -dname "CN=server123.empresa.local, OU=TI, O=Empresa, L=Cidade, S=Estado, C=BR" \
  -ext "SAN=DNS:server123.empresa.local,IP:192.168.10.25"

Passo 3: Criar o truststore (opcional)

Se quiser que o NiFi confie no próprio certificado:

keytool -exportcert \
  -alias nifi-cert \
  -keystore /opt/nifi/conf/keystore.p12 \
  -storetype PKCS12 \
  -storepass NifiServer2025xy \
  -file /opt/nifi/conf/nifi-cert.crt

keytool -importcert \
  -alias nifi-cert \
  -file /opt/nifi/conf/nifi-cert.crt \
  -keystore /opt/nifi/conf/truststore.p12 \
  -storetype PKCS12 \
  -storepass NifiServer2025xy \
  -noprompt

Passo 4: Configurar o nifi.properties

Edite o arquivo de configuração principal do NiFi:

sudo nano /opt/nifi/conf/nifi.properties

Adicione ou ajuste as seguintes linhas:

nifi.security.keystore=/opt/nifi/conf/keystore.p12
nifi.security.keystoreType=PKCS12
nifi.security.keystorePasswd=NifiServer2025xy

nifi.security.truststore=/opt/nifi/conf/truststore.p12
nifi.security.truststoreType=PKCS12
nifi.security.truststorePasswd=NifiServer2025xy

nifi.web.https.host=server123.empresa.local
nifi.web.https.port=8443

Passo 5: Reiniciar o NiFi

Reinicie o NiFi para aplicar as configurações:

sudo /opt/nifi/bin/nifi.sh restart

Passo 6: Testar o acesso HTTPS

Acesse o NiFi via navegador:

https://server123.empresa.local:8443/nifi

Conclusão

O erro “Invalid SNI” no Apache NiFi é causado por certificados SSL mal configurados, especialmente em servidores dentro de domínios corporativos. A solução é gerar um certificado com os nomes corretos no campo SAN e configurar o NiFi para usá-lo.

Começar com um backup dos arquivos garante segurança e reversibilidade, e seguir os passos corretamente elimina o erro e fortalece a segurança da instância NiFi.

FAQ: Perguntas Frequentes

1. O que significa o erro “Invalid SNI” no Apache NiFi?

Esse erro ocorre quando o nome usado na URL de acesso (FQDN ou IP) não está presente no certificado SSL configurado no NiFi. O servidor rejeita a conexão por não reconhecer o nome enviado via SNI (Server Name Indication).

2. Por que esse erro é comum em servidores corporativos?

Em ambientes corporativos, os servidores geralmente fazem parte de um domínio interno e são acessados por nomes DNS específicos ou IPs. Se esses nomes não forem incluídos no certificado SSL como SANs, o NiFi não aceitará a conexão HTTPS.

3. Como posso evitar o erro “Invalid SNI”?

Você deve gerar um certificado SSL que inclua todos os nomes de acesso (FQDN e IP) no campo Subject Alternative Name (SAN). O CN (Common Name) também deve corresponder ao hostname configurado no nifi.properties.

4. Posso usar um certificado autoassinado para resolver isso?

Sim. Um certificado autoassinado com SANs corretamente configurados é suficiente para eliminar o erro “Invalid SNI”, especialmente em ambientes internos ou de desenvolvimento.

5. Preciso configurar o truststore no NiFi?

Não é obrigatório, mas é recomendado. O truststore permite que o NiFi confie no próprio certificado, o que é útil para autenticação mútua (mTLS) ou para evitar warnings de segurança.

6. O que acontece se eu acessar o NiFi por um nome não incluído no certificado?

A conexão será rejeitada com erro 400. O Jetty, servidor embutido no NiFi, exige que o nome enviado via SNI esteja presente no certificado — caso contrário, considera a requisição inválida.

Compartilhe:

Tiago Tartari

Tiago Tartari

Eu ajudo e capacito pessoas e organizações a transformar problemas complexos em soluções práticas usando a tecnologia para atingir resultados extraordinários.

Qual é o desafio
que você tem hoje?