Glassfish - Console administrativa em branco após login
Descrição da Situação:
Ao efetuar o login na console administrativa do Glassfish, é retornado uma tela em branco com o contexto j_security_check.
Ticket relacionado: #56249
Rotina / Tela:
Console administrativa Glassfish
Solução:
A causa de não carregar a pagina após o login é o certificado digital do Glassfish (s1as) ter corrompido.
Será necessário reimportar o certificado digital no dominio com problemas, podemos retirar o certificado de outro dominio que esteja com o login funcionando. Porém este dominio deve estar na mesma maquina do dominio com certificado corrompido.
*Importante: Apenas a console não acessa, porém as aplicações no Glassfish continuam funcionando.
Caso não tenha outro dominio na mesma maquina, pode efetuar a criação de um novo dominio executando o processo abaixo:
- Pelo CMD acesse a pasta bin do Glassfish (<glassfish>\bin), após acessar a pasta digite "asadmin" e <enter>;
- Execute o comando conforme o exemplo, aqui você pode definir as portas e nome do dominio ao final.
create-domain --savelogin --checkports=false --adminport 44024 --instanceport 44020 --domainproperties=jms.port=44027:domain.jmxPort=44022:orb.listener.port=44023:http.ssl.port=44021:orb.ssl.port=44028:orb.mutualauth.port=44029 domain1
Com o dominio na mesma maquina será necessário abrir a keystore.jks (caminho exemplo: D:\glassfish4\glassfish\domains\<domain>\config\keystore.jks) utilizando o "Portecle".
Ao selecionar a keystore será solicitada a senha do arquivo, geralmente a senha é "changeit" ou "adminadmin" (esta senha pode ser customizada, caso tenha sido alterada deve-se verificar com quem alterou).
Após abrir, deve clicar com o botão direito sobre o "s1as" e ir em "Export":
Deve ser exportado desta forma:
Será solicitada uma nova senha, mantenha a mesma senha da abertura da keystore:
Após salvar o arquivo, pelo "Portecle" deve-se abrir a keystore do dominio (depois de criar um backup) que esta com problemas para podermos importar o novo certificado. Abrindo a keystore deve-se excluir o "s1as" atual e salvar.
Para a importação, vá no menu Tools > Import Key Pair, localize o certificado exportado anteriormente. Insira a senha novamente, na próxima tela clique em "OK".
Será apresentado a tela de escolha do "Alias" do certificado digital, deve ser "s1as".
Será solicitado a nova senha, que deve ser mantida a senha da keystore. Após apresentar a mensagem de "Key Pair Import Successful." deve-se salvar a keystore.
Primeira parte do processo foi realizado, agora precisamos efetuar o mesmo processo de exportação e importação no "cacerts.jks" (continuamos pelo "Portecle").
Abra o cacerts.jks do dominio funcional, será solicitada a senha (que no padrão deverá ser a mesma da keystore.jks).
Aqui teremos mais certificados do que a Keystore, pois este é o repositório de certificados digitais e a keystore é o repositório das chaves. Localize o certificado "s1as" e exporte o mesmo desta forma:
Após exportar o arquivo, abra o cacerts.jks do dominio com problemas. Delete o certificado "s1as" e salve.
Para importar o certificado, vá no menu Tools > Import Trusted Certificate
No aviso clique em "OK", será mostrado os detalhes do certificado clique em "OK".
Após será perguntado se você quer aceitar o certificado como confiável, clique em "Yes".
Na tela do "Alias", coloque "s1as".
No aviso "Trusted Certificate Import Successful." clique em OK, depois salve o cacerts.jks.
Será necessário reiniciar o dominio do glassfish com o problema.
** Caso tenha criado um dominio apenas para exportar o certificado, neste momento pode apaga-lo.