Este tópico descreve como instalar e configurar um certificado SSL em um servidor GlassFish. O conteúdo abrange o download e o upload dos arquivos de certificado, a configuração do certificado, da cadeia de certificados e da chave privada, além da verificação da instalação.
Este tópico usa o contêiner padrão domain1 no GlassFish 4.1.2-web em Linux como exemplo. As etapas podem variar conforme o sistema operacional ou a versão do GlassFish.
Antes de começar
Você comprou e solicitou um certificado pelo SSL Certificates Service, e o Status é Issued. Para comprar e solicitar um certificado, consulte Comprar um certificado pago e Solicitar um certificado.
O nome de domínio está resolvido corretamente para o servidor atual.
Você tem permissões administrativas neste servidor (conta root ou conta com permissões sudo).
Procedimento
Etapa 1: Baixar o certificado SSL
-
Na página SSL Certificates, localize o certificado a ser implantado e confirme as seguintes informações:
Certificate Status: Verifique se o status é Issued. Se o status for About to Expire ou Expired, renove o certificado SSL.
-
Bound Domains: Confirme se o certificado cobre todos os nomes de domínio a proteger. Caso contrário, os navegadores exibirão avisos de segurança quando usuários acessarem nomes de domínio não correspondentes via HTTPS. Para adicionar ou modificar nomes de domínio, consulte Adicionar e substituir nomes de domínio.
Na coluna Actions do certificado desejado, clique em More para acessar a página de detalhes do certificado. Na aba Download, baixe o certificado cujo Server Type seja Other.
-
Descompacte o pacote de certificado baixado.
Se o pacote contiver um arquivo de certificado (.pem) e um arquivo de chave privada (.key), armazene ambos com segurança. Eles são necessários para a implantação.
-
Se o pacote contiver apenas um arquivo de certificado (.pem) e nenhum arquivo de chave privada (.key), implante o certificado junto com o arquivo de chave privada salvo localmente.
NotaSe você gerou um arquivo de solicitação de assinatura de certificado (CSR) com uma ferramenta como OpenSSL ou Keytool ao solicitar o certificado, o arquivo de chave privada fica armazenado apenas na máquina local, e o pacote baixado não contém esse arquivo. Se a chave privada for perdida, o certificado torna-se inutilizável. Nesse caso, compre um certificado pago e gere um novo CSR e uma nova chave privada.
Etapa 2: Instalar o certificado no GlassFish
-
Faça login no servidor Linux.
Servidor Alibaba Cloud
As operações a seguir usam uma instância ECS da Alibaba Cloud como exemplo. Para outros tipos de servidores, consulte a documentação respectiva.
Acesse o console ECS. Na barra de navegação superior, selecione a região onde a instância ECS desejada está localizada.
No painel de navegação à esquerda, escolha . Na página Instances, localize a instância ECS desejada e clique em Remote Connection na coluna Remote connection.
Na caixa de diálogo exibida, selecione Workbench e clique em Sign in now.
-
Selecione Terminal Connection como método de conexão, insira as informações de autenticação e siga as instruções na tela para concluir o login. Em seguida, acesse o terminal do servidor. Para mais informações, consulte Conectar-se a uma instância ECS usando o Workbench.
NotaSe o painel Security Group Whitelist Opening Prompt aparecer, clique em Add Rule conforme solicitado.
Outros provedores de nuvem
Use o recurso de conexão remota fornecido pelo provedor de nuvem para fazer login no terminal do servidor.
Servidores on-premises
Use uma ferramenta SSH na máquina local para fazer login no terminal do servidor.
Windows: Execute o comando
ssh <username>@<server_ip_address>no Prompt de Comando (cmd) ou PowerShell. Se o comando ssh não for suportado, use uma ferramenta de terceiros, como PuTTY ou WinSCP, para estabelecer a conexão.macOS/Linux: Execute o comando
ssh <username>@<server_ip_address>no terminal integrado.
Alguns comandos a seguir variam conforme o sistema operacional. Selecione o comando apropriado para o SO do servidor.
Série RHEL/CentOS: inclui Alibaba Cloud Linux, Red Hat Enterprise Linux, CentOS, AlmaLinux, Rocky Linux, Anolis OS e derivados.
Série Debian/Ubuntu: inclui Debian, Ubuntu e derivados.
-
Abra a porta 443 no grupo de segurança e no firewall.
-
Execute o seguinte comando no terminal do servidor para verificar se a porta 443 está aberta:
RHEL/CentOS
command -v nc > /dev/null 2>&1 || sudo yum install -y nc # Replace <your_server_public_ip_address> 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_address> 443Se a saída contiver
Ncat: Connected to <your_server_public_ip_address>:443, a porta 443 está aberta. Caso contrário, abra a porta 443 no grupo de segurança e no firewall.Debian/Ubuntu
command -v nc > /dev/null 2>&1 || sudo apt-get install -y netcat # Replace <your_server_public_ip_address> 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_address> 443Se a saída contiver
Connection to <your_server_public_ip_address> port [tcp/https] succeeded!ou[<your_server_public_ip_address>] 443 (https) open, a porta 443 está aberta. Caso contrário, abra a porta 443 no grupo de segurança e no firewall. -
Abra a porta 443 no grupo de segurança.
ImportanteSe o servidor estiver implantado em uma plataforma de nuvem, garanta que o grupo de segurança permita tráfego de entrada na porta TCP 443. Caso contrário, o serviço não ficará acessível pela internet. As operações a seguir usam uma instância ECS da Alibaba Cloud como exemplo. Para outras plataformas de nuvem, consulte a documentação oficial correspondente.
Acesse a página Instâncias ECS e clique no nome da instância desejada para ir à página de detalhes. Para mais informações, consulte Adicionar uma regra de grupo de segurança. Adicione uma regra ao security group com Action definida como Allow, Protocol Type definido como TCP, Port Range definido como HTTPS(443) e Authorization Object definido como Anywhere (0.0.0.0/0).
-
Abra a porta 443 no firewall.
Execute o comando a seguir para identificar o serviço de firewall atual no sistema:
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" fiSe a saída for
none, nenhuma ação adicional é necessária. Caso contrário, com base no tipo de firewall (firewalld,ufw,nftablesouiptables), execute o comando correspondente para abrir a porta 443:firewalld
sudo firewall-cmd --permanent --add-port=443/tcp && sudo firewall-cmd --reloadufw
sudo ufw allow 443/tcpnftables
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/nulliptables
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPTPara evitar que as regras do iptables sejam perdidas após a reinicialização do sistema, execute o comando a seguir para tornar as regras persistentes:
RHEL/CentOS
sudo yum install -y iptables-services sudo service iptables saveDebian/Ubuntu
sudo apt-get install -y iptables-persistent sudo iptables-save | sudo tee /etc/iptables/rules.v4 >/dev/null
-
-
Crie um diretório para armazenar o certificado.
Acesse o diretório de instalação do GlassFish (este exemplo usa
/home/glassfish4), crie um diretório chamadocerte entre nele.cd /home/glassfish4 mkdir cert cd cert -
Faça upload dos arquivos de certificado e chave privada para o diretório
cert.NotaUse o recurso de upload de arquivos locais de uma ferramenta de login remoto para enviar os arquivos. Exemplos dessas ferramentas incluem PuTTY, Xshell ou WinSCP. Se estiver usando uma instância do Elastic Compute Service da Alibaba Cloud, consulte Fazer upload ou download de arquivos para mais informações.
-
Converta o certificado do formato PEM para PKCS12.
O GlassFish usa o formato de keystore JKS; portanto, converta primeiro o certificado PEM para o formato PKCS12. No diretório
cert, execute o comando a seguir para gerar um arquivo chamadomycert.p12com o alias definido comos1as.openssl pkcs12 -export -in domain_name.pem -inkey domain_name.key -out mycert.p12 -name s1asNotaSubstitua
domain_name.pemedomain_name.keypelos caminhos reais dos arquivos de certificado e chave privada.Quando solicitado, defina a senha de exportação. Recomendamos usar a senha padrão do keystore do GlassFish (keystore.jks), que é
changeit, para evitar problemas de configuração posteriores. Se usar uma senha diferente, sincronize a senha da entrada de chave em uma etapa posterior.
-
Pare o serviço GlassFish.
Interrompa o serviço antes de modificar o keystore e a configuração:
/home/glassfish4/glassfish/bin/asadmin stop-domain domain1 -
Faça backup dos arquivos de keystore e configuração.
Para evitar falhas na inicialização causadas por erros de configuração, faça backup do arquivo de keystore padrão do GlassFish
keystore.jkse do arquivo de configuração do domínio.cp /home/glassfish4/glassfish/domains/domain1/config/keystore.jks /home/glassfish4/glassfish/domains/domain1/config/keystore.jks.bak cp /home/glassfish4/glassfish/domains/domain1/config/domain.xml /home/glassfish4/glassfish/domains/domain1/config/domain.xml.bak -
Remova o alias de certificado padrão.
Por padrão, o GlassFish usa o alias
s1aspara comunicação SSL. Exclua essa entrada padrão do keystore para substituí-la pelo seu certificado.keytool -delete -alias s1as -keystore /home/glassfish4/glassfish/domains/domain1/config/keystore.jksQuando solicitado, insira a senha do keystore.jks. A senha padrão é
changeit. -
Importe o novo certificado para o keystore.
Importe
mycert.p12para o keystorekeystore.jkscom o alias definido comos1as.keytool -importkeystore \ -srckeystore mycert.p12 -srcstoretype PKCS12 \ -destkeystore /home/glassfish4/glassfish/domains/domain1/config/keystore.jks \ -deststoretype JKS \ -alias s1asQuando solicitado, insira as seguintes senhas:
Senha do keystore de destino: Insira a senha do
keystore.jks(padrão:changeit).-
Senha do keystore de origem: Insira a senha de exportação definida para
mycert.p12na Etapa 5.Se a senha de exportação do
mycert.p12for diferente da senha dokeystore.jks, execute o comando a seguir para sincronizar a senha da entrada de chave:keytool -keypasswd -alias s1as \ -keystore /home/glassfish4/glassfish/domains/domain1/config/keystore.jks \ -storepass <keystore.jks_password> \ -keypass <mycert.p12_export_password> \ -new <keystore.jks_password>
-
Atualize a configuração da porta.
Edite
/home/glassfish4/glassfish/domains/domain1/config/domain.xml. Localize a seção<network-listeners>e altere as portas HTTP e HTTPS para 80 e 443, conforme mostrado abaixo:<network-listeners> <network-listener protocol="http-listener-1" port="80" name="http-listener-1" thread-pool="http-thread-pool" transport="tcp"></network-listener> <network-listener protocol="http-listener-2" port="443" name="http-listener-2" thread-pool="http-thread-pool" transport="tcp"></network-listener> <network-listener protocol="admin-listener" port="4848" name="admin-listener" thread-pool="admin-thread-pool" transport="tcp"></network-listener> </network-listeners> -
Inicie o serviço GlassFish.
cd /home/glassfish4/glassfish/bin sudo ./asadmin start-domain domain1
Etapa 3: Verificar a instalação
Acesse o nome de domínio via HTTPS. Exemplo:
https://example.com. Substituaexample.compelo nome de domínio real.-
Se um ícone de cadeado aparecer na barra de endereços do navegador, o certificado foi implantado com sucesso. Caso ocorra um erro de acesso ou o ícone de cadeado não apareça, limpe o cache do navegador ou tente novamente no modo anônimo ou privado.

A partir do Chrome 117, o ícone
na barra de endereços foi substituído pelo novo ícone
. Clique neste ícone para visualizar as informações de segurança.
Se o problema persistir, consulte a seção FAQ para solução de problemas.
FAQ
Certificado não funciona ou HTTPS inacessível
As causas comuns incluem:
A porta 443 não está aberta no grupo de segurança ou no firewall. Consulte Abrir a porta 443 no grupo de segurança e no firewall.
Os Bound Domains do certificado não incluem o domínio acessado. Consulte Verificar se o certificado corresponde aos domínios de destino.
O serviço GlassFish não foi reiniciado após a modificação da configuração. Para reiniciar o serviço, consulte Iniciar o serviço GlassFish.
Os arquivos de certificado não foram substituídos corretamente ou o caminho do certificado na configuração do GlassFish está incorreto. Verifique se a configuração e os arquivos do certificado estão atuais e válidos.
O nome de domínio está integrado a serviços de nuvem como CDN, SLB ou WAF, mas o certificado não está instalado no serviço correspondente. Para mais informações, consulte Local de implantação do certificado quando o tráfego passa por vários serviços de nuvem.
O nome de domínio resolve para vários servidores, mas o certificado está instalado apenas em alguns deles. Instale o certificado em cada servidor.
Para mais soluções de problemas, consulte Solucionar problemas de implantação de certificados com base em erros do navegador e Guia de solução de problemas de implantação de certificado SSL.
Atualizar um certificado SSL instalado
Faça backup dos arquivos de certificado originais (.pem e .key) no servidor. Em seguida, faça login no console do Certificate Management Service, baixe os novos arquivos de certificado e envie-os para o servidor para substituir os originais. Garanta que os caminhos e nomes dos arquivos permaneçam os mesmos. Por fim, reinicie o serviço GlassFish para que o novo certificado entre em vigor.