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:
1 2 3 4 |
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:
1 2 3 4 |
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:
1 2 3 4 5 6 7 8 9 10 |
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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
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:
1 |
sudo nano /opt/nifi/conf/nifi.properties |
Adicione ou ajuste as seguintes linhas:
1 2 3 4 5 6 7 8 9 10 |
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:
1 |
sudo /opt/nifi/bin/nifi.sh restart |
Passo 6: Testar o acesso HTTPS
Acesse o NiFi via navegador:
1 |
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.