Configuração do Apache Tomcat com Certificado SSL
Introdução
O intuito desta documentação é auxiliar a configuração do Certificado SSL dentro do Apache Tomcat, possibilitando a utilização de um ambiente Fusion dentro do protocolo HTTPS.

Atenção
Não recomendamos o uso de certificados do tipo auto-assinados.
Atenção
Esse material de apoio foi desenvolvido com base na documentação oficial do Apache Tomcat e diversas configurações e/ou parâmetros podem sofrer alterações com o tempo, principalmente os métodos de aplicação do protocolo HTTPS, onde o resultado final varia dependendo da emissora do certificado e o Apache Tomcat em sua versão utilizada. Por isso, recomendamos que leve em consideração junto com esse material, a documentação oficial, que pode ser acessada clicando aqui.
Nota
Alguns processos de instalação são do tipo padrão, entretanto é exigido uma experiência prévia em informática de quem instalará a solução.
Nota
Caso possua o NGINX ou tenha interesse em utilizá-lo, recomendamos que aplique a configuração do certificado SSL dentro do NGINX. Para isso, basta acessar o nosso guia de Configuração do Apache Tomcat com o NGINX.
Configuração no Tomcat
Nota
Neste material, utilizamos as portas 8080 e 443 para HTTP e HTTPS, respectivamente.
⚙️ Configuração de HTTPS no Tomcat
Para iniciar o procedimento, deve-se abrir o server.xml (localizado na pasta conf do tomcat) e inserir o parâmetro redirectPort="443" no seu Connector HTTP, para que possamos direcionar à porta de destino HTTPS, conforme exemplo abaixo:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
maxPostSize="-1"
redirectPort="443"
maxParameterCount="1000"
discardFacades="false"
/>
🔒Configuração do Conector HTTPS
Crie uma pasta chamada certificado dentro da pasta conf do Tomcat. Em seguida, insira os arquivos relacionados ao certificado nesta pasta. Os arquivos necessários variam conforme o tipo de certificado utilizado:
Tipo 1: Certificado com extensão .crt
📄 Arquivos necessários:
| Arquivo | Descrição |
|---|---|
server.crt | Certificado do servidor, emitido pela Autoridade Certificadora (CA). |
server.key | Chave privada usada para a criptografia do certificado. |
chain.crt | Cadeia de certificação: inclui certificados intermediários e o raiz. |
Nota
💡 A cadeia é necessária para que navegadores e clientes consigam validar o certificado até uma CA raiz confiável.
🔧 Exemplo de configuração para certificados .crt:
<Connector
protocol="org.apache.coyote.http11.Http11NioProtocol"
port="443"
maxThreads="150"
SSLEnabled="true"
secure="true"
scheme="https"
>
<SSLHostConfig>
<Certificate
certificateKeyFile="C:/Program Files/Apache Software Foundation/Tomcat 10.1.x/conf/certificado/server.key"
certificateFile="C:/Program Files/Apache Software Foundation/Tomcat 10.1.x/conf/certificado/server.crt"
certificateChainFile="C:/Program Files/Apache Software Foundation/Tomcat 10.1.x/conf/certificado/chain.crt"
type="RSA"
/>
</SSLHostConfig>
</Connector>
Atenção
Note que nos parâmetros certificateFile, certificateKeyFile e certificateChainFile, deve-se alterar o valor para o caminho que contém o seu certificado SSL, sua chave privada e a cadeia de certificados do seu domínio, respectivamente.
Nota
O parâmetro certificateChainFile é a junção da cadeia de certificados do domínio. Essa cadeia é uma sequência de certificados que permitem verificar a autenticidade de um certificado SSL/TLS.
O arquivo chain.crt é a junção dos seguintes certificados:
- Certificado do Servidor: O certificado que autentica o servidor.
- Certificados Intermediários: Um ou mais certificados que estabelecem a ligação entre o certificado do servidor e o certificado de autoridade raiz.
- Certificado Raiz: O certificado da CA raiz, que é amplamente confiável e está pré-instalado nos navegadores e sistemas operacionais.
Tipo 2: Certificado com extensão .pem
📄 Arquivos necessários:
| Arquivo | Descrição |
|---|---|
fullchain.pem | Contém o certificado do servidor e a cadeia completa (intermediários + raiz). |
privkey.pem | Chave privada do certificado. |
Nota
💡 O arquivo fullchain.pem geralmente é fornecido por autoridades como Let's Encrypt. Ele substitui os arquivos server.crt + chain.crt de forma unificada.
🛠️ Exemplo de configuração para certificados .pem:
<Connector
protocol="org.apache.coyote.http11.Http11NioProtocol"
port="443"
maxThreads="150"
SSLEnabled="true"
secure="true"
scheme="https"
>
<SSLHostConfig>
<Certificate
certificateFile="C:/Program Files/Apache Software Foundation/Tomcat 10.1.x/conf/certificado/fullchain.pem"
certificateKeyFile="C:/Program Files/Apache Software Foundation/Tomcat 10.1.x/conf/certificado/privkey.pem"
type="RSA"
/>
</SSLHostConfig>
</Connector>
Nota
💡 Nos parâmetros certificateFile e certificateKeyFile, informe o caminho correto dos arquivos .pem contendo o certificado (com cadeia inclusa) e a chave privada.
Como o fullchain.pem já contém a cadeia de certificação, o parâmetro certificateChainFile não é necessário para certificados .pem.
Tipo 3 : Certificado com extensão .pfx
📄 Arquivos necessários:
| Arquivo | Descrição |
|---|---|
meucertificado.pfx | Arquivo unificado contendo contendo todas as credenciais. |
🛠️ Exemplo de configuração para certificados .pfx:
<Connector
protocol="org.apache.coyote.http11.Http11NioProtocol"
port="443"
maxThreads="150"
SSLEnabled="true"
secure="true"
scheme="https"
>
<SSLHostConfig>
<Certificate
certificateKeystoreFile="C:/Program Files/Apache Software Foundation/Tomcat 10.1.x/conf/certificado/meucertificado.pfx"
certificateKeystoreType="PKCS12"
certificateKeystorePassword="SENHA_DO_CERTIFICADO"
certificateKeyAlias="ALIAS_DO_CERTIFICADO"
/>
</SSLHostConfig>
</Connector>
Atenção
O parâmetro certificateKeyAlias é obrigatório apenas se houver múltiplos certificados dentro do arquivo .pfx. Caso haja apenas um certificado, este parâmetro pode ser dispensado.
Para descobrir o alias correto, siga os passos abaixo:
- Abra o Prompt de Comando (CMD);
- Navegue até a pasta bin da instalação do Java, o caminho padrão deverá ser:
C:\Program Files\Amazon Corretto\jdk21.0.5_11\bin; - Execute o comando:
keytool -v -list -storetype PKCS12 -keystore "C:\caminho\do\certificado\meucertificado.pfx; - Insira a senha do certificado quando solicitado.
O valor exibido após Alias name *é o que deve ser informado no parâmetro certificateKeyAlias.
No final das configurações, o seu arquivo server.xml deve conter dois conectores configurados — um para HTTP (porta 8080) e outro para HTTPS (porta 443). Confira abaixo um exemplo visual de como o server.xml deve estar configurado corretamente:

Redirecionamento HTTP para HTTPS
Para que seu ambiente possua redirecionamento de HTTP para HTTPS, edite o arquivo web.xml, localizado na pasta conf do Tomcat, desça até o final do mesmo e adicione a configuração abaixo, antes do fechamento da tag <web-app>.
<security-constraint>
<web-resource-collection>
<web-resource-name>Application</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
No final das configurações, o seu web.xml deve ficar conforme a imagem:

Validando as Configurações
Para validar todo o procedimento, reinicie o Apache Tomcat com todas as configurações aplicadas e faça o acesso em seu ambiente.
Nota
Note que, a partir de agora, a URL de acesso ao Fusion ficará sem a porta do Tomcat configurada.
Exemplo de como era: http://<domain>:8080/fusion
Exemplo de como deve ficar: https://<domain>/fusion
Atenção
Caso possua problemas com a validação do seu certificado SSL, entre em contato com a empresa emissora.
Ao acessar o ambiente, clique no cadeado localizado no canto esquerdo da URL.
Se apresentar a mensagem “A conexão é segura”, significa que o ambiente Fusion está utilizando um certificado SSL válido, emitido por uma autoridade certificadora confiável e que não está expirado.
Atenção
Se o ambiente estiver utilizando um certificado self-signed (autoassinado, geralmente criado localmente para testes ou homologação), o navegador poderá exibir um aviso como “A conexão não é totalmente segura” ou mensagens semelhantes, indicando que o site não é confiável para navegação pública. Isso não impede o funcionamento do sistema, mas sinaliza que o certificado não foi emitido por uma entidade certificadora reconhecida.
Durante o processo, caso surjam dúvidas, a equipe de suporte da Neomind estará à disposição para prestar auxílio.