Instale um certificado SSL no formato Java KeyStore (JKS) ou PFX/PKCS#12 em um servidor Tomcat com Linux para habilitar o HTTPS. Este guia aborda como baixar o certificado, configurar o arquivo server.xml do Tomcat, abrir a porta 443 e verificar a implantação.
Requisitos
Antes de começar, certifique-se de atender aos seguintes requisitos:
Status do certificado: Tenha um certificado SSL emitido por uma autoridade certificadora (CA) confiável. Se o certificado estiver expirando ou já tiver expirado, renove-o antes de prosseguir.
-
Correspondência de nome de domínio: Verifique se o certificado cobre todos os nomes de domínio que você deseja proteger. Para adicionar ou alterar um nome de domínio, compre um certificado pago ou adicione e substitua nomes de domínio.
-
Nome de domínio exato: Um certificado de nome de domínio exato aplica-se apenas ao domínio especificado.
Um certificado para
example.comaplica-se somente aexample.com.Um certificado para
www.example.comaplica-se somente awww.example.com.
-
Nome de domínio curinga: Um certificado de nome de domínio curinga aplica-se apenas a subdomínios de primeiro nível.
Um certificado para
*.example.comaplica-se a subdomínios de primeiro nível, comowww.example.comea.example.com.Um certificado para
*.example.comnão se aplica ao domínio raizexample.comnem a subdomínios de vários níveis, comoa.b.example.com.
NotaPara corresponder a um subdomínio de vários níveis, o campo Bound Domains deve incluir o nome de domínio específico (por exemplo,
a.b.example.com) ou um nome de domínio curinga correspondente (por exemplo,*.b.example.com). -
Permissões do servidor: Use a conta
rootou uma conta com permissõessudo.Resolução DNS: O nome de domínio resolve para o endereço IP público do servidor.
Início rápido
O processo de instalação consiste em quatro etapas:
Baixe o pacote de certificados no console do Certificate Management Service e envie os arquivos para o seu servidor.
Abra a porta 443 no grupo de segurança e no firewall.
Edite o arquivo
server.xmlpara adicionar o conector SSL e reinicie o Tomcat.Acesse
https://yourdomainem um navegador e confirme se o ícone de cadeado aparece.
Pré-requisitos
Antes de começar, verifique se você possui:
Um certificado SSL emitido por uma autoridade certificadora (CA) confiável. Se o certificado estiver prestes a expirar ou já tiver expirado, renove-o primeiro.
-
Um certificado que corresponda a todos os nomes de domínio que você deseja proteger: Para adicionar ou modificar nomes de domínio, compre um certificado comercial ou adicione e substitua nomes de domínio.
Nome de domínio com correspondência exata: Aplica-se apenas ao domínio especificado. Por exemplo,
example.comprotege apenasexample.com, ewww.example.comprotege apenaswww.example.com.Nome de domínio curinga: Aplica-se apenas a subdomínios de primeiro nível. Por exemplo,
*.example.comcobrewww.example.comea.example.com, mas não cobre o domínio raizexample.comou subdomínios de vários níveis, comoa.b.example.com.
Para proteger um subdomínio de vários níveis, o campo Bound Domains deve conter o subdomínio exato (por exemplo,
a.b.example.com) ou um domínio curinga correspondente (por exemplo,*.b.example.com). Uma conta
rootou uma conta com privilégiossudono servidor.Um registro DNS para o domínio que resolva para o endereço IP público do servidor.
Etapa 1: Preparar os arquivos de certificado
Acesse a página SSL Certificates. Na coluna Actions do certificado desejado, clique em Download Certificate. Na aba Download, selecione Tomcat como Server Type e baixe o pacote.
-
Extraia o pacote baixado. Ele contém um arquivo de certificado (
.pfxou.jks) e um arquivo de senha (.txt).Escolha o formato de certificado adequado ao seu ambiente: - JKS (Java KeyStore) : Formato de keystore específico para Java. Escolha JKS se suas ferramentas e scripts já oferecerem suporte a ele. - PFX/PKCS#12 : Formato universal compatível com Java e outras plataformas. Escolha PFX para integrar diferentes pilhas tecnológicas ou sistemas não Java.
-
Envie o arquivo de certificado (
.pfxou.jks) e o arquivo de senha (.txt) para o servidor. Armazene-os em um diretório seguro, como/etc/ssl/cert/. Use o recurso de upload de arquivos de uma ferramenta de login remoto, como PuTTY, Xshell ou WinSCP, para transferir os arquivos. Se estiver usando uma instância do Alibaba Cloud Elastic Compute Service (ECS), consulte Upload ou download de arquivos para obter instruções.ImportanteApós o envio, restrinja o acesso aos arquivos de certificado. Permita que apenas o usuário do Tomcat os leia:
sudo chown tomcat:tomcat /etc/ssl/cert/domain_name.* sudo chmod 400 /etc/ssl/cert/domain_name.*
Etapa 2: Abrir a porta 443
O Tomcat exige que a porta 443 esteja aberta em dois níveis: no grupo de segurança da nuvem e no firewall do sistema operacional.
Abrir a porta 443 no grupo de segurança
Se o seu servidor for executado no Alibaba Cloud ECS, adicione uma regra de entrada para permitir a porta TCP 443:
Acesse Elastic Compute Service (ECS) instances e clique no nome da instância desejada.
-
Na seção Security Group Details, adicione uma regra de grupo de segurança com as configurações abaixo e salve: Para outras plataformas de nuvem, consulte a documentação respectiva.
Campo
Valor
Action
Allow
Protocol
Custom TCP
Destination (Current Instance)
HTTPS (443)
Source
0.0.0.0/0 (anywhere)
Abrir a porta 443 no firewall do SO
Primeiro, verifique se a porta 443 já está acessível. Execute o comando correspondente à sua distribuição Linux:
RHEL/CentOS
command -v nc > /dev/null 2>&1 || sudo yum install -y nc
# Replace <your_server_public_ip> with your server's public IP address.
sudo ss -tlnp | grep -q ':443 ' || sudo nc -l 443 & sleep 1; nc -w 3 -vz <your_server_public_ip> 443
Se a saída contiver Ncat: Connected to <your_server_public_ip>:443, a porta 443 está aberta e nenhuma ação adicional é necessária.
Debian/Ubuntu
command -v nc > /dev/null 2>&1 || sudo apt-get install -y netcat
# Replace <your_server_public_ip> with your server's public IP address.
sudo ss -tlnp | grep -q ':443 ' || sudo nc -l -p 443 & sleep 1; nc -w 3 -vz <your_server_public_ip> 443
Se a saída contiver Connection to <your_server_public_ip> port [tcp/https] succeeded! ou [<your_server_public_ip>] 443 (https) open, a porta 443 está aberta e nenhuma ação adicional é necessária.
Caso a porta 443 não esteja aberta, identifique o firewall ativo e abra a porta:
if command -v systemctl >/dev/null 2>&1 && systemctl is-active --quiet firewalld; then
echo "firewalld"
elif command -v ufw >/dev/null 2>&1 && sudo ufw status | grep -qw active; then
echo "ufw"
elif command -v nft >/dev/null 2>&1 && sudo nft list ruleset 2>/dev/null | grep -q 'table'; then
echo "nftables"
elif command -v systemctl >/dev/null 2>&1 && systemctl is-active --quiet iptables; then
echo "iptables"
elif command -v iptables >/dev/null 2>&1 && sudo iptables -L 2>/dev/null | grep -qE 'REJECT|DROP|ACCEPT'; then
echo "iptables"
else
echo "none"
fi
Se a saída for none, nenhum firewall está ativo. Caso contrário, execute o comando correspondente ao seu firewall:
firewalld
sudo firewall-cmd --permanent --add-port=443/tcp && sudo firewall-cmd --reload
ufw
sudo ufw allow 443/tcp
nftables
sudo nft add table inet filter 2>/dev/null
sudo nft add chain inet filter input '{ type filter hook input priority 0; }' 2>/dev/null
sudo nft add rule inet filter input tcp dport 443 counter accept 2>/dev/null
iptables
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
Para persistir as regras do iptables entre reinicializações:
-
RHEL/CentOS:
sudo yum install -y iptables-services sudo service iptables save -
Debian/Ubuntu:
sudo apt-get install -y iptables-persistent sudo iptables-save | sudo tee /etc/iptables/rules.v4 >/dev/null
Etapa 3: Configurar o Tomcat
A sintaxe de configuração varia ligeiramente entre as versões do Tomcat. Siga a seção correspondente à sua versão.
Tomcat 9
-
No diretório raiz do Tomcat, abra o arquivo
server.xml:sudo vim ./conf/server.xml -
Configure o conector de redirecionamento HTTP. Atualize o conector HTTP existente para redirecionar o tráfego para a porta 443:
<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="443" maxParameterCount="1000" /> -
Adicione o conector SSL. Escolha o bloco correspondente ao formato do seu certificado:
PFX format
<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true" maxParameterCount="1000" > <SSLHostConfig> <Certificate certificateKeystoreFile="/etc/ssl/cert/domain_name.pfx" certificateKeystorePassword="<password-from-pfx-password.txt>" type="RSA" /> </SSLHostConfig> </Connector>JKS format
<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true" maxParameterCount="1000" > <SSLHostConfig> <Certificate certificateKeystoreFile="/etc/ssl/cert/domain_name.jks" certificateKeystorePassword="<password-from-jks-password.txt>" type="RSA" /> </SSLHostConfig> </Connector>Substitua o caminho
certificateKeystoreFilepelo caminho real do seu arquivo de certificado e substitua o valor decertificateKeystorePasswordpelo conteúdo do arquivo de senha correspondente. -
Atualize o
redirectPortdo conector AJP para 443:<Connector protocol="AJP/1.3" address="::1" port="8009" redirectPort="443" maxParameterCount="1000" />
Tomcat 8.5
O Tomcat 8.5 exige que você especifique manualmente a implementação JSSE. A sintaxe do conector é a mesma do Tomcat 9 acima. Adicione o conector SSL usando o bloco PFX ou JKS da seção do Tomcat 9.
Tomcat 7
O Tomcat 7 usa atributos SSL inline no elemento Connector em vez de SSLHostConfig aninhado.
PFX format
<Connector port="443"
protocol="HTTP/1.1"
SSLEnabled="true"
scheme="https"
secure="true"
keystoreFile="/etc/ssl/cert/domain_name.pfx"
keystoreType="PKCS12"
keystorePass="<password-from-pfx-password.txt>"
clientAuth="false"
SSLProtocol="TLSv1.1+TLSv1.2+TLSv1.3"
ciphers="TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256"/>
JKS format
<Connector port="443"
protocol="HTTP/1.1"
connectionTimeout="20000"
redirectport="8443"
maxParameterCount="1000"
SSLEnabled="true"
scheme="https"
secure="true"
keystoreFile="/etc/ssl/cert/domain_name.jks"
keystoreType="JKS"
keystorePass="<password-from-jks-password.txt>"
clientAuth="false"
SSLProtocol="TLSv1.1+TLSv1.2+TLSv1.3"
ciphers="TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256"/>
(Opcional) Forçar redirecionamento de HTTP para HTTPS
Para redirecionar automaticamente todas as solicitações HTTP para HTTPS, adicione o seguinte bloco no final do arquivo conf/web.xml, logo antes da tag de fechamento </web-app>:
<security-constraint>
<web-resource-collection>
<web-resource-name>SSL</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
Validar e reiniciar o Tomcat
-
Valide a configuração. No diretório
bindo Tomcat, execute:./configtest.shSe a saída for
Configuration file test successful, a configuração é válida. Se houver erros, corrija a configuração com base nas mensagens de erro e execute a validação novamente. -
Reinicie o Tomcat para aplicar as alterações:
sudo ./shutdown.sh sudo ./startup.sh
Etapa 4: Verificar a implantação
Abra um navegador e acesse https://yourdomain (substitua yourdomain pelo seu domínio real).
Um ícone de cadeado na barra de endereços confirma que o certificado foi instalado corretamente.

A partir da versão 117, o Chrome substituiu o ícone
pelo novo ícone
. Clique neste ícone para visualizar os detalhes do certificado.
Se o ícone de cadeado não aparecer ou se você encontrar erros de acesso, limpe o cache do navegador ou tente novamente no modo anônimo. Consulte a seção FAQ se o problema persistir.
Produção
Ao implantar em produção, aplique as seguintes práticas:
-
Execute o Tomcat como um usuário não root. Crie uma conta de sistema dedicada com baixos privilégios para o Tomcat e nunca o execute como root.
Considere encerrar o SSL na camada de gateway — implante o certificado em um Server Load Balancer (SLB) ou em um proxy reverso, como o Nginx. O gateway lida com o encerramento HTTPS e encaminha HTTP simples para o backend, o que simplifica o gerenciamento de certificados em vários servidores.
Mantenha credenciais fora dos arquivos de configuração. Use variáveis de ambiente, um gerenciador de segredos ou um serviço de gerenciamento de chaves na nuvem para injetar a senha do keystore em tempo de execução, em vez de codificá-la diretamente no arquivo
server.xml.Force o redirecionamento de HTTP para HTTPS. Redirecione todo o tráfego HTTP para HTTPS para evitar ataques man-in-the-middle (consulte a etapa opcional na Etapa 3).
Desative protocolos TLS legados. Desative SSLv3, TLS 1.0 e TLS 1.1 na configuração do Tomcat. Habilite apenas TLS 1.2 e TLS 1.3.
Monitore a expiração do certificado. Após a implantação, ative o monitoramento de domínios no Certificate Management Service. O Alibaba Cloud verifica a validade do certificado e envia lembretes de renovação antes da expiração. Para obter instruções, consulte Comprar e ativar o monitoramento de nome de domínio público.
FAQ
HTTPS inacessível após instalação ou atualização de certificado
Verifique os itens abaixo nesta ordem:
Porta 443 bloqueada. Verifique se tanto o grupo de segurança quanto o firewall do SO permitem tráfego TCP de entrada na porta 443. Consulte a Etapa 2.
Incompatibilidade de domínio. Confirme se o domínio acessado está listado no campo Bound Domains do certificado. Consulte a seção de pré-requisitos para regras de correspondência de domínio.
Tomcat não reiniciado. A nova configuração só entra em vigor após a reinicialização do Tomcat. Consulte as etapas de validação e reinicialização na Etapa 3.
Caminho ou arquivo de certificado incorreto. Verifique se
certificateKeystoreFile(oukeystoreFile) no arquivoserver.xmlaponta para o arquivo de certificado correto e atualizado.Certificado ausente em serviços upstream. Se o seu domínio passar por uma Content Delivery Network (CDN), Server Load Balancer (SLB) ou Web Application Firewall (WAF), o certificado também deverá ser instalado nesses serviços. Consulte Locais de implantação de certificado quando o tráfego passa por vários serviços do Alibaba Cloud.
Implantação incompleta em vários servidores. Se o DNS do domínio resolver para vários servidores, instale o certificado em todos eles.
Para uma solução de problemas mais detalhada, consulte Resolver problemas de implantação de certificado com base em mensagens de erro do navegador e o Guia de solução de problemas de implantação de certificado SSL.
Falha ao iniciar o Tomcat e o log mostra o erro "Keystore was tampered with, or password was incorrect"
Isso quase sempre significa que a senha no arquivo server.xml não corresponde ao arquivo de keystore. Para corrigir:
Abra o arquivo de senha (
.txt) do pacote de certificados e copie seu conteúdo exatamente, sem espaços à direita ou quebras de linha.Atualize o atributo
certificateKeystorePassword(oukeystorePass) no arquivoserver.xmlcom esse valor.Confirme se
certificateKeystoreFile(oukeystoreFile) aponta para o caminho de arquivo correto.Confirme se o usuário do Tomcat tem permissão de leitura no arquivo de certificado.
Connection was reset / Connection refused ao acessar o servidor
Este é um problema de conectividade de rede, não de certificado. Verifique o seguinte:
Confirme se tanto o grupo de segurança quanto o firewall do SO permitem tráfego de entrada na porta 443 (ou qualquer porta configurada no arquivo
server.xml). Consulte a Etapa 2.Verifique se o Tomcat está em execução:
ps -ef | grep tomcatConfirme se o atributo
portno conector SSL do arquivoserver.xmlcorresponde à porta que você está acessando.
Como atualizar ou substituir um certificado SSL no Tomcat
Faça backup dos arquivos existentes. Salve cópias do arquivo de certificado atual (
.pfxou.jks) e do arquivo de senha (.txt) do servidor.Baixe o novo certificado. Obtenha o novo pacote de certificados no console do Certificate Management Service.
Substitua os arquivos. Envie os novos arquivos de certificado e senha para o mesmo caminho no servidor, substituindo os antigos. O caminho e o nome do arquivo devem corresponder exatamente ao que está configurado no arquivo
server.xml.Reinicie o Tomcat. Execute
sudo ./shutdown.shesudo ./startup.shno diretóriobindo Tomcat para aplicar o novo certificado.