Todos os produtos
Search
Central de documentação

Certificate Management Service:Install an SSL certificate on a Jetty server (Linux)

Última atualização: Jun 27, 2026

Por padrão, o Jetty transmite dados via HTTP, o que expõe seus serviços a riscos como interceptação e sequestro de sessão. Instalar um certificado SSL ativa o HTTPS, criptografa o tráfego entre clientes e servidor e verifica a identidade do servidor.

Importante

Este guia usa Linux e jetty-distribution-9.4.51.v20230217 como ambiente de exemplo. As etapas podem variar conforme o sistema operacional ou a versão do Jetty.

Pré-requisitos

Antes de começar, verifique se você tem:

  • Um certificado SSL emitido por uma autoridade certificadora confiável. Se o certificado estiver prestes a expirar ou já tiver expirado, renove-o antes de prosseguir.

  • Um certificado que cubra todos os nomes de domínio a proteger. Para adicionar ou alterar domínios, adquira um certificado comercial ou atualize os domínios vinculados.

    Para cobrir subdomínios de vários níveis, o campo Bound Domains deve conter o domínio exato (por exemplo, a.b.example.com ) ou um curinga correspondente (por exemplo, *.b.example.com ).

    Tipo de domínio

    Cobertura

    Correspondência exata (example.com)

    Apenas o domínio especificado

    Curinga (*.example.com)

    Somente subdomínios de primeiro nível (www.example.com, a.example.com). Não cobre o domínio raiz example.com nem subdomínios de vários níveis, como a.b.example.com.

  • Uma conta root ou com privilégios sudo no servidor.

  • Resolução de DNS: O nome de domínio resolve para o endereço IP público do servidor.

  • Um registro DNS que resolva seu domínio para o endereço IP público do servidor.

Visão geral

A instalação envolve cinco etapas:

Etapa

Tarefa

1

Baixe o certificado JKS do console Alibaba Cloud

2

Abrir a porta 443 no grupo de segurança e no firewall do servidor

3

Configure o módulo SSL do Jetty com o certificado

4

Reiniciar o Jetty

5

Verifique se o HTTPS está funcionando

Etapa 1: Baixe o certificado SSL

  1. Acesse a página SSL Certificate Management. Na coluna Actions do certificado desejado, clique em Download Certificate.

  2. Na aba Download, selecione JKS como Server Type e baixe o pacote do certificado.

    Java KeyStore (JKS) é o formato de keystore proprietário para ambientes Java.
  3. Extraia o pacote. Ele contém dois arquivos:

    • Um arquivo .jks — o arquivo de certificado que inclui a cadeia completa de certificados.

    • Um arquivo jks-password.txt — a senha do keystore.

Etapa 2: Abrir a porta 443

O tráfego HTTPS usa a porta 443. Abra essa porta no grupo de segurança da nuvem e no firewall do servidor.

Abrir a porta 443 no grupo de segurança

Se o servidor estiver executando no Elastic Compute Service (ECS) da Alibaba Cloud, adicione uma regra de entrada ao grupo de segurança:

  1. Acesse a página de instâncias do Elastic Compute Service (ECS) e clique em no nome da instância desejada.

  2. Na seção Security Group Details, adicione uma regra com as configurações abaixo e salve. Para instruções detalhadas, consulte Add a security group rule.

    Campo

    Valor

    Action

    Allow

    Protocol

    Custom TCP

    Destination (Current Instance)

    HTTPS (443)

    Source

    0.0.0.0/0 (anywhere)

Para outras plataformas de nuvem, consulte a documentação correspondente.

Verifique se a porta 443 já está aberta

Execute o comando a seguir para verificar se a porta 443 está acessível. Substitua <your_server_public_ip> pelo endereço IP público do seu servidor.

RHEL/CentOS

command -v nc > /dev/null 2>&1 || sudo yum install -y nc
# Replace <your_server_public_ip> with the public IP address of your server.
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 for Ncat: Connected to <your_server_public_ip>:443, a porta 443 está aberta. Caso contrário, prossiga para abri-la no firewall.

Debian/Ubuntu

command -v nc > /dev/null 2>&1 || sudo apt-get install -y netcat
# Replace <your_server_public_ip> with the public IP address of your server.
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 for Connection to <your_server_public_ip> port [tcp/https] succeeded! ou [<your_server_public_ip>] 443 (https) open, a porta 443 está aberta.

Abrir a porta 443 no firewall

Primeiro, identifique o serviço de firewall ativo:

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 e nenhuma ação adicional é necessária. 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 após 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: Instale o certificado SSL no Jetty

Configure a estrutura de diretórios

O Jetty separa o diretório de instalação ($JETTY_HOME) do diretório de trabalho ($JETTY_BASE). Mantenha-os separados para simplificar futuras atualizações.

# Example: Jetty is installed in /usr/local/jetty; the application runs from /var/www/my-app.
export JETTY_HOME=/usr/local/jetty
export JETTY_BASE=/var/www/my-app

# Create directories for certificate files and web application resources.
mkdir -p $JETTY_BASE/cert
mkdir -p $JETTY_BASE/webapps

cd $JETTY_BASE

Carregar os arquivos de certificado

Carregue o arquivo .jks e o arquivo jks-password.txt para o diretório $JETTY_BASE/cert/ usando uma ferramenta de transferência de arquivos como PuTTY, Xshell ou WinSCP. Se o servidor estiver no Alibaba Cloud ECS, consulte Upload or download files.

Ative o módulo SSL

No diretório $JETTY_BASE, execute o comando a seguir para inicializar o módulo ssl. Isso gera os arquivos ssl.ini e https.ini em $JETTY_BASE/start.d/.

java -jar $JETTY_HOME/start.jar --add-to-start=ssl

Configure o caminho e a senha do certificado

Abra o arquivo $JETTY_BASE/start.d/ssl.ini para edição:

vim $JETTY_BASE/start.d/ssl.ini

Localize e atualize os parâmetros a seguir. Certifique-se de que nenhum deles esteja comentado com #.

jetty.ssl.keyStorePath=cert/your_domain.jks
jetty.ssl.keyStorePassword=<password from jks-password.txt>
jetty.ssl.keyManagerPassword=<password from jks-password.txt>

Parâmetro

Descrição

Exemplo

jetty.ssl.keyStorePath

Caminho relativo de $JETTY_BASE até o arquivo .jks

cert/your_domain.jks

jetty.ssl.keyStorePassword

Senha obtida em jks-password.txt

jetty.ssl.keyManagerPassword

Mesmo valor de keyStorePassword para certificados JKS da Alibaba Cloud

Os nomes de parâmetros mais antigos jetty.ssl.keystore.path , jetty.ssl.keystore.password e jetty.ssl.keymanager.password foram descontinuados. Use os nomes em camelCase mostrados acima.

Etapa 4: Reiniciar o Jetty

No diretório $JETTY_BASE, inicie o servidor Jetty com sudo. A porta 443 é privilegiada e requer permissões de root.

# Change to the Jetty working directory.
cd $JETTY_BASE

# Start the service.
sudo java -jar $JETTY_HOME/start.jar

Etapa 5: Verifique a instalação

  1. Abra um navegador e acesse https://yourdomain. Substitua yourdomain pelo seu domínio real.

  2. Um ícone de cadeado na barra de endereços confirma a instalação correta do certificado. Se aparecer um erro de acesso ou nenhum ícone de cadeado, limpe o cache do navegador ou tente novamente no modo anônimo.

image

A partir do Chrome 117, o ícone de cadeado image foi substituído por image. Clique em nesse ícone para visualizar os detalhes do certificado.

image.png

Uma resposta Error 404 indica que o Jetty iniciou com sucesso, mas não há nenhuma aplicação web implantada. Esse comportamento é esperado em uma instalação nova.

Entrada em produção

Ao migrar para produção, aplique estas práticas para melhorar a segurança e a estabilidade:

  • Executar como usuário não root: Crie uma conta de sistema dedicada e com baixos privilégios para a aplicação. Nunca execute o Jetty como root.

    Uma abordagem recomendada é terminar 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 gerencia o HTTPS e encaminha o tráfego HTTP descriptografado para o Jetty.
  • Externalizar credenciais: Nunca codifique senhas ou valores sensíveis diretamente nos 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 credenciais em tempo de execução.

  • Impor redirecionamento de HTTP para HTTPS: Redirecione todo o tráfego HTTP para HTTPS para evitar ataques man-in-the-middle.

  • Desativar protocolos TLS legados: Na configuração do servidor, desative SSLv3, TLS 1.0 e TLS 1.1. Ative apenas TLS 1.2 e TLS 1.3.

  • Monitorar certificados e automatizar renovações: Após a implantação, ative o monitoramento de domínios. A Alibaba Cloud verifica a validade dos certificados e envia lembretes de renovação antes da expiração, permitindo que você aja antes de qualquer interrupção de serviço. Consulte Purchase and enable public domain name monitoring.

Perguntas frequentes

O HTTPS não funciona após a instalação

Verifique os itens a seguir nesta ordem:

  • Porta 443 bloqueada: O grupo de segurança ou o firewall não está permitindo tráfego de entrada na porta 443. Consulte Abrir a porta 443.

  • Incompatibilidade de domínio: O domínio acessado não consta nos Bound Domains do certificado. Consulte a seção de pré-requisitos para regras de cobertura de curingas e correspondências exatas.

  • Jetty não reiniciado: Alterações de configuração só entram em vigor após uma reinicialização. Consulte Reiniciar o Jetty.

  • Caminho ou senha do certificado incorretos: Verifique se jetty.ssl.keyStorePath aponta para o arquivo .jks correto e se a senha em ssl.ini corresponde à de jks-password.txt.

  • Certificado ausente em serviços upstream: Se o domínio usar Content Delivery Network (CDN), Server Load Balancer (SLB) ou Web Application Firewall (WAF), instale o certificado também nesses serviços. Consulte Certificate deployment locations when traffic passes through multiple Alibaba Cloud services.

  • Múltiplos servidores: Se o DNS resolver para mais de um servidor, instale o certificado em todos eles.

Para solução de problemas adicionais, consulte Resolve certificate deployment issues based on browser error messages e SSL certificate deployment troubleshooting guide.

Como substituir um certificado SSL no Jetty?

  1. Fazer backup dos arquivos antigos: Salve os arquivos .jks e jks-password.txt existentes no servidor.

  2. Obter novos arquivos: Baixe o novo certificado no console do Certificate Management Service.

  3. Substituir arquivos: Carregue os novos arquivos no mesmo caminho especificado em ssl.ini, sobrescrevendo os antigos.

  4. Reiniciar o Jetty: Reinicie o serviço para aplicar o novo certificado.

Falha na inicialização: "Address already in use" ou "Port is already occupied"

A porta 443 já está vinculada a outro processo. Execute sudo ss -tlnp | grep :443 ou sudo lsof -i:443 para identificar o processo e interrompê-lo. Causas comuns incluem Nginx, Apache ou um listener de teste que não foi encerrado.

Falha na inicialização: "Permission denied"

No Linux, vincular-se a portas abaixo de 1024 requer permissões de root. Inicie o Jetty com sudo. Em produção, evite executar serviços diretamente como root — use setcap para conceder ao binário do Java a capacidade de se vincular a portas privilegiadas:

sudo setcap 'cap_net_bind_service=+ep' /path/to/your/java

Alternativamente, coloque o Jetty atrás de um proxy reverso como o Nginx, que escuta na porta 443 e encaminha o tráfego para uma porta não privilegiada.