Todos os produtos
Search
Central de documentação

Certificate Management Service:Instalar um certificado SSL em um servidor Tomcat (Linux)

Última atualização: Jun 27, 2026

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.com aplica-se somente a example.com.

      • Um certificado para www.example.com aplica-se somente a www.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.com aplica-se a subdomínios de primeiro nível, como www.example.com e a.example.com.

      • Um certificado para *.example.com não se aplica ao domínio raiz example.com nem a subdomínios de vários níveis, como a.b.example.com.

    Nota

    Para 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 root ou uma conta com permissões sudo.

  • 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:

  1. Baixe o pacote de certificados no console do Certificate Management Service e envie os arquivos para o seu servidor.

  2. Abra a porta 443 no grupo de segurança e no firewall.

  3. Edite o arquivo server.xml para adicionar o conector SSL e reinicie o Tomcat.

  4. Acesse https://yourdomain em 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.com protege apenas example.com, e www.example.com protege apenas www.example.com.

    • Nome de domínio curinga: Aplica-se apenas a subdomínios de primeiro nível. Por exemplo, *.example.com cobre www.example.com e a.example.com, mas não cobre o domínio raiz example.com ou subdomínios de vários níveis, como a.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 root ou uma conta com privilégios sudo no 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

  1. 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.

  2. Extraia o pacote baixado. Ele contém um arquivo de certificado (.pfx ou .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.
  3. Envie o arquivo de certificado (.pfx ou .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.

    Importante

    Apó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:

  1. Acesse Elastic Compute Service (ECS) instances e clique no nome da instância desejada.

  2. 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

  1. No diretório raiz do Tomcat, abra o arquivo server.xml:

    sudo vim ./conf/server.xml
  2. 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"
               />
  3. 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 certificateKeystoreFile pelo caminho real do seu arquivo de certificado e substitua o valor de certificateKeystorePassword pelo conteúdo do arquivo de senha correspondente.

  4. Atualize o redirectPort do 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

  1. Valide a configuração. No diretório bin do Tomcat, execute:

    ./configtest.sh

    Se 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.

  2. 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.

image

A partir da versão 117, o Chrome substituiu o ícone image pelo novo ícone image. 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:

  1. 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.

  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.

  3. 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.

  4. Caminho ou arquivo de certificado incorreto. Verifique se certificateKeystoreFile (ou keystoreFile) no arquivo server.xml aponta para o arquivo de certificado correto e atualizado.

  5. 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.

  6. 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:

  1. Abra o arquivo de senha (.txt) do pacote de certificados e copie seu conteúdo exatamente, sem espaços à direita ou quebras de linha.

  2. Atualize o atributo certificateKeystorePassword (ou keystorePass) no arquivo server.xml com esse valor.

  3. Confirme se certificateKeystoreFile (ou keystoreFile) aponta para o caminho de arquivo correto.

  4. 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:

  1. 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.

  2. Verifique se o Tomcat está em execução: ps -ef | grep tomcat

  3. Confirme se o atributo port no conector SSL do arquivo server.xml corresponde à porta que você está acessando.

Como atualizar ou substituir um certificado SSL no Tomcat

  1. Faça backup dos arquivos existentes. Salve cópias do arquivo de certificado atual (.pfx ou .jks) e do arquivo de senha (.txt) do servidor.

  2. Baixe o novo certificado. Obtenha o novo pacote de certificados no console do Certificate Management Service.

  3. 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.

  4. Reinicie o Tomcat. Execute sudo ./shutdown.sh e sudo ./startup.sh no diretório bin do Tomcat para aplicar o novo certificado.