O certificado que um cliente entrega quase nunca vem no formato que um WAF quer. O Tomcat exporta um keystore JKS, o IIS exporta um arquivo PFX, e o WAF quer uma simples chave pública, chave privada e cadeia de certificados. Aqui está a cadeia de conversão real, os comandos keytool e OpenSSL, e o que verificar antes que um upload que parecia correto se revele não ser.
Por Yuwen Zhang (Atlas), fundador da AtlasCommTech — 13 anos de implantações de redes de operadoras e empresariais · Atualizado em julho de 2026
O certificado é real, não expirou, e mesmo assim não entra no WAF — porque o próprio arquivo está no formato errado.
A maioria das plataformas de servidor web não armazena certificados como uma simples chave pública, chave privada e cadeia. Apache e Nginx, construídos sobre OpenSSL, são os que mais se aproximam — já funcionam com arquivos do tipo CRT, KEY e CER. Tomcat, WebLogic e JBoss rodam em Java e armazenam tudo em um único arquivo Java Keystore (JKS) construído com o Keytool do JDK. O IIS da Microsoft usa o repositório de certificados do Windows e exporta como PFX. A configuração HTTPS de um WAF quer diretamente os arquivos estilo OpenSSL, então qualquer coisa que saia de um contêiner JKS ou PFX precisa ser convertida primeiro — e a cadeia precisa viajar junto, ou o site permanece inacessível mesmo com um certificado perfeitamente válido.
A seguir está a relação de conversão entre os três formatos, os comandos exatos para cada etapa, como gerar uma cadeia de certificados quando a do cliente está faltando, como distinguir um arquivo de chave pública de um arquivo de CA antes de fazer upload de qualquer um deles, e algumas respostas de perguntas frequentes tiradas de casos reais de campo.
JKS, PFX e PEM/KEY/CRT não são três formatos sem relação — eles ficam em uma única cadeia de conversão, e todo upload de certificado de WAF acaba percorrendo-a a partir de uma ou outra extremidade.
Saber de qual extremidade você está partindo indica exatamente quantos saltos existem entre você e um upload que realmente funciona.
Os rótulos do diagrama permanecem em inglês para clareza técnica.
Tudo à esquerda de PEM/KEY/CRT precisa fazer o trajeto por este diagrama antes que um WAF o aceite. A cadeia de certificados é uma questão separada que viaja junto com o par de chave pública/privada, não um quarto formato na mesma cadeia — e é a peça mais frequentemente esquecida.
Dois saltos, uma etapa de construção de cadeia se necessário, e uma verificação antes de mexer no formulário de upload.
Se o certificado veio de um servidor Tomcat, WebLogic ou JBoss, ele está em um único arquivo JKS e precisa primeiro passar pelo Keytool.
keytool -importkeystore -srckeystore D:\server.jks -destkeystore D:\server.pfx -srcstoretype JKS -deststoretype PKCS12
Seja o PFX vindo da Etapa 1 ou diretamente de um servidor IIS, esta é a etapa que produz os arquivos que o WAF realmente quer.
openssl pkcs12 -in server.pfx -nodes -out server.pem
openssl rsa -in server.pem -out server.key
openssl x509 -in server.pem -out server.crt
Quando o certificado vem de uma CA intermediária em vez de uma autoridade raiz — o caso normal — a cadeia também precisa ser enviada, ou o site permanece inacessível para qualquer um cujo navegador ainda não confie nesse intermediário.
Um arquivo que abre sem erro não é prova de que é o arquivo certo para o campo em que você está prestes a colocá-lo.
Os próprios comandos de conversão raramente falham — essas quatro coisas ao redor deles é que realmente quebram o upload.
SINTOMAUm certificado que funciona perfeitamente no servidor Tomcat ou IIS do cliente é rejeitado, ou simplesmente não faz upload, quando você tenta configurar o mesmo site HTTPS no WAF.
CAUSADiferentes plataformas de servidor web armazenam certificados em formatos diferentes por padrão: Apache/Nginx usam arquivos CRT/KEY baseados em OpenSSL, Tomcat/WebLogic/JBoss usam um Java Keystore (JKS) construído com o Keytool do JDK, e o IIS no Windows Server exporta como PFX. A configuração HTTPS/SSL do WAF quer a chave pública, chave privada e cadeia de certificados estilo OpenSSL — não um contêiner JKS ou PFX.
SOLUÇÃOConverta seguindo a cadeia padrão — JKS para PFX com Keytool, depois PFX para PEM/KEY/CRT com OpenSSL — em vez de tentar fazer upload do arquivo original do cliente como está.
SINTOMAO site HTTPS está inacessível depois que o certificado é enviado, embora o próprio certificado esteja correto e não tenha expirado.
CAUSAQuando um certificado é emitido por uma CA intermediária em vez de diretamente por uma autoridade raiz — o caso normal — os clientes precisam da cadeia intermediária para construir um caminho de confiança até uma raiz em que já confiam. Se essa cadeia não for enviada junto com a chave pública e privada, o handshake falha para qualquer um cujo navegador ainda não tenha o intermediário em cache.
SOLUÇÃOFaça upload da cadeia de certificados que o cliente fornece. Se estiver faltando ou perdida, importe o certificado de CA do site em uma ferramenta on-line de download de cadeia como a página chain_download do myssl.com, gere a cadeia lá, e envie o resultado.
SINTOMAUm upload de certificado parece bem-sucedido, mas o site ainda falha em servir HTTPS corretamente, ou o arquivo errado acaba no campo de upload errado.
CAUSAUm certificado folha (a chave pública do site) e um certificado de CA podem ser ambos arquivos .crt/.cer comuns com nomes semelhantes, e não há uma forma confiável de distingui-los apenas pelo nome do arquivo.
SOLUÇÃOClique duas vezes no arquivo de certificado antes de fazer upload e verifique o caminho do certificado. Um nome de domínio no caminho significa que é a chave pública; sem nome de domínio significa que é um certificado de CA — envie cada um para o campo que corresponde ao que ele realmente é, não ao que seu nome de arquivo sugere.
SINTOMAO mesmo site funciona bem por HTTP, mas o acesso HTTPS falha para alguns ou todos os clientes depois que o certificado já foi enviado.
CAUSADepois de confirmar que o HTTP funciona, a falha está em algum lugar no próprio handshake TLS, e geralmente é uma de quatro coisas: uma versão SSL/TLS em que o cliente está preso e que o WAF não suporta (SSLv2/SSLv3/TLS 1.0), um conjunto de cifras que o WAF desabilita por padrão, uma chave pública, privada ou cadeia que na verdade não corresponde ao servidor de origem, ou um cliente apresentando autenticação TLS mútua (bidirecional) como um UKey — que essa classe de WAF não consegue proxyar de forma alguma.
SOLUÇÃOPercorra os quatro em ordem: verifique primeiro a versão de protocolo negociada pelo cliente, depois o suporte a conjunto de cifras, depois reverifique se a chave/cadeia enviada realmente corresponde à origem, e finalmente descarte clientes de autenticação mútua — que precisam contornar o WAF em vez de serem proxyados através dele.
Tiradas diretamente do campo — aquelas para as quais vale a pena ter uma resposta pronta.
Apache e Nginx normalmente usam as próprias ferramentas do OpenSSL, produzindo diretamente arquivos do tipo CRT, KEY e CER. Tomcat, WebLogic e JBoss passam pelo Keytool do Java, parte do JDK, e armazenam tudo em um único arquivo Java Keystore (JKS). O IIS da Microsoft usa o repositório de certificados do Windows e exporta como PFX. Um WAF precisa da chave pública, chave privada e cadeia estilo OpenSSL — então qualquer coisa que saia de um arquivo JKS ou PFX precisa ser convertida primeiro.
Dois saltos. Primeiro, o Keytool converte JKS para PFX: keytool -importkeystore -srckeystore server.jks -destkeystore server.pfx -srcstoretype JKS -deststoretype PKCS12. Depois, o OpenSSL divide o PFX nos arquivos PEM/KEY/CRT que o WAF realmente quer: openssl pkcs12 -in server.pfx -nodes -out server.pem, seguido de openssl rsa -in server.pem -out server.key e openssl x509 -in server.pem -out server.crt.
Sim — você precisa fazer upload da cadeia de certificados junto com a chave pública e privada, ou o site fica inacessível mesmo que o certificado folha em si seja completamente válido. Se o cliente não forneceu um arquivo de cadeia, ou ele foi perdido, importar o certificado de CA do site na ferramenta de download de cadeia do myssl.com e gerar a cadeia a partir daí é a solução padrão.
Clique duas vezes no arquivo de certificado para abri-lo e verifique o caminho do certificado. Se um nome de domínio aparecer na cadeia, você está vendo a chave pública — o certificado folha emitido para o seu site. Se não houver nome de domínio, é um certificado de CA — útil para construir a cadeia, mas não algo que você deva enviar para o campo de chave pública.
Quatro suspeitos habituais, aproximadamente nesta ordem: uma versão de protocolo SSL/TLS não suportada no cliente (SSLv2, SSLv3, TLS 1.0); um conjunto de cifras que o WAF desabilita por padrão por motivos de segurança, que você pode habilitar ao custo de parte dessa segurança; uma chave pública, privada ou cadeia que simplesmente não corresponde ao que o servidor de origem realmente usa; ou um cliente fazendo autenticação TLS mútua (bidirecional) com algo como um UKey — que essa classe de WAF não suporta proxyar de forma alguma.
Esta nota se baseia nos requisitos de certificado do WAF Huawei — uma chave pública, chave privada e cadeia de certificados em formato PEM/KEY/CRT estilo OpenSSL — e nos comandos Keytool / OpenSSL usados para chegar lá a partir de JKS ou PFX, além dos casos de campo por trás deles. Se o seu WAF for de outro fabricante, os campos de upload exatos podem diferir, mas a cadeia de conversão subjacente — JKS através de PFX até PEM/KEY/CRT — e as verificações de cadeia de certificados e chave pública versus CA se aplicam diretamente. Não cobre a autenticação de certificado de cliente TLS mútua (bidirecional), que a maioria dos appliances de WAF não suporta proxyar de forma alguma.
Conte-nos de qual formato você está partindo — JKS, PFX, ou outro — e onde a cadeia quebra, e ajudamos você a interpretá-la.