Este tópico descreve como instalar e configurar um certificado SSL em um servidor GlassFish. Abrange o download e o upload dos arquivos do certificado, a configuração do certificado, da cadeia de certificação e da chave privada, além da verificação da instalação.
Este tópico usa o contêiner padrão domain1 do GlassFish 4.1.2-web no Linux como exemplo. As etapas podem variar de acordo com o sistema operacional ou a versão do GlassFish.
Antes de começar
Você adquiriu e solicitou um certificado por meio do SSL Certificates service, e o Status dele é Issued. Para adquirir e solicitar um certificado, consulte Purchase a paid certificate e Apply for a certificate.
O nome de domínio está corretamente resolvido para o servidor atual.
Você tem permissões administrativas neste servidor (conta root ou conta com permissões sudo).
Procedimento
Etapa 1: Baixe o certificado SSL
-
Na página SSL Certificates, localize o certificado que deseja implantar e confirme as seguintes informações:
Certificate Status: Verifique se o status é Issued. Se o status for About to Expire ou Expired, você deve renew the SSL certificate.
-
Bound Domains: Verifique se o certificado cobre todos os nomes de domínio que você deseja proteger. Caso contrário, os navegadores exibirão avisos de segurança quando os usuários acessarem domínios não cobertos via HTTPS. Para adicionar ou modifique domínios, consulte Add and replace domain names.
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 do certificado baixado.
Se o pacote contiver tanto um arquivo de certificado (.pem) quanto um arquivo de chave privada (.key), armazene ambos com segurança. Você precisará deles na 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 que você salvou localmente.
NotaSe você gerou um arquivo de solicitação de assinatura de certificado (CSR) usando uma ferramenta como OpenSSL ou Keytool ao solicitar o certificado, a chave privada fica armazenada apenas na sua máquina local e o pacote baixado não a contém. Caso a chave privada seja perdida, o certificado se tornará inutilizável. Você deve purchase a paid certificate e gerar um novo CSR e uma nova chave privada.
Etapa 2: Instale o certificado no GlassFish
-
Faça login no seu servidor Linux.
Alibaba Cloud server
As operações a seguir usam uma instância ECS da Alibaba Cloud como exemplo. Para outros tipos de servidores, consulte a documentação correspondente.
Faça login no ECS console. Na barra de navegação superior, selecione a região onde a instância ECS de destino está localizada.
No painel de navegação à esquerda, escolha . Na página Instances, localize a instância ECS de destino 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 Connect to an ECS instance by using Workbench.
NotaSe o painel Security Group Whitelist Opening Prompt aparecer, clique em Add Rule conforme solicitado.
Other cloud providers
Use o recurso de conexão remota fornecido pelo provedor de cloud para fazer login no terminal do servidor.
On-premises servers
Use uma ferramenta SSH na sua 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 no 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 dos comandos a seguir variam de acordo com o sistema operacional. Selecione o comando adequado para o SO do seu servidor.
Série RHEL/CentOS: inclui Alibaba Cloud Linux, Red Hat Enterprise Linux, CentOS, AlmaLinux, Rocky Linux, Anolis OS e seus derivados.
Série Debian/Ubuntu: inclui Debian, Ubuntu e seus 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 seu servidor estiver implantado em uma plataforma cloud, certifique-se de que o grupo de segurança permita tráfego de entrada na porta TCP 443. Sem isso, o service não estará acessível pela internet. As operações a seguir usam uma instância ecs da Alibaba Cloud como exemplo. Para outras plataformas cloud, consulte a documentação oficial correspondente.
Acesse a página ECS Instances e clique no nome da instância de destino para acessar sua página de detalhes. Para mais informações, consulte Add a security group rule. Adicione uma regra ao security group com Action definido 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 seguinte comando para identificar o service de firewall ativo no seu 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 uma reinicialização do sistema, execute o seguinte comando para torná-las 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 (neste exemplo,
/home/glassfish4), crie um diretório chamadocerte navegue até ele.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 você usa uma instância Elastic Compute Service da Alibaba Cloud, consulte Upload or download files para mais informações.
-
Converta o certificado do formato PEM para o formato PKCS12.
O GlassFish usa o formato de keystore JKS, portanto é necessário converter o certificado PEM para o formato PKCS12 primeiro. No diretório
cert, execute o seguinte comando 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 seus 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 você usar uma senha diferente, será necessário sincronizar a senha da entrada de chave em uma etapa posterior.
-
Pare o service do GlassFish.
Pare o service antes de modifique 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 de 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:
Destination keystore password: insira a senha do
keystore.jks(padrão:changeit).-
Source keystore password: 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 seguinte comando 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 de portas.
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 service do GlassFish.
cd /home/glassfish4/glassfish/bin sudo ./asadmin start-domain domain1
Etapa 3: Verifique a instalação
Acesse seu nome de domínio via HTTPS. Exemplo:
https://example.com. Substituaexample.compelo seu nome de domínio real.-
Se um ícone de cadeado aparecer na barra de endereços do navegador, o certificado foi implantado com sucesso. Se ocorrer um erro de acesso ou o ícone de cadeado não aparecer, 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 nesse ícone para visualize as informações do cadeado 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 Open port 443 in the security group and firewall.
O campo Bound Domains do certificado não inclui o domínio que você está acessando. Consulte Verify that the certificate matches the target domains.
O service do GlassFish não foi reiniciado após a modificação da configuração. Para reiniciar o service, consulte Start the GlassFish service.
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 atualizados e válidos.
O nome de domínio está integrado a services cloud como CDN, SLB ou WAF, mas o certificado não está instalado no service correspondente. Para mais informações, consulte Certificate deployment location when traffic passes through multiple cloud services.
O nome de domínio resolve para múltiplos servidores, mas o certificado está instalado em apenas alguns deles. Instale o certificado em cada servidor.
Para solução de problemas adicional, consulte Troubleshoot certificate deployment issues based on browser errors e SSL certificate deployment troubleshooting guide.
Atualizar um certificado SSL instalado
Faça backup dos arquivos de certificado originais (.pem e .key) no seu servidor. Em seguida, faça login no console do Certificate Management service, baixe os novos arquivos de certificado e faça upload deles para o servidor, sobrescrevendo os originais. Certifique-se de que os caminhos e nomes dos arquivos permaneçam os mesmos. Por fim, reinicie o service do GlassFish para que o novo certificado entre em vigor.