Tecnologia - Servidor Java EE - Inserir/atualizar certificado digital
Descrição da Situação:
Problemas para inserir/atualizar certificado digital no Glassfish, este artigo é um passo a passo de como efetuar o procedimento.
Ticket relacionado: #
Rotina / Tela:
Certificado digital
Solução:
Há problemas variados com o certificado digital, pois cada unidade certificadora pode enviar o certificado de uma forma. O certificado no glassfish sempre precisará conter: a chave privada, o certificado e as cadeias de certificado. Não havendo um destes pontos o certificado ou não será importado ou será importado mas não será valido.
Para importação do certificado digital requer o "Portecle", para importar o certificado digital na Keystore.jks do dominio em questão. A unidade certificadora deverá entregar um certificado .PFX ou .P12.
Primeiro passo é instalar/importar o certificado no servidor via MMC (no executar do Windows digite MMC). Com o MMC aberto vá em Arquivo > Adicionar/remover snap-in, adicione o snap-in "Certificados" onde será apresentada uma segunda tela e deve manter o "Minha conta de usuário".
A arvore de certificados será apresentada, na pasta "Pessoal" clique com o botão direito e vá em Todas as Tarefas > Importar. Na tela apresentada clique em Avançar, escolha o arquivo do certificado digital na tela seguinte deve ser inserida a senha do certificado digital e selecionada as opções conforme imagem abaixo:
Na pasta Pessoal > Certificados será apresentado o certificado importado, quando é um .PFX será apresentado apenas um certificado com o nome do DNS, quando for .P12 além do certificado será apresentado os certificados da cadeia de certificação. Ambos você irá exportar pelo certificado com o nome do DNS, clicando com o botão direito e ir em Todas as Tarefas > Exportar.
Avance na primeira tela, na segunda escolha "Sim, exportar a chave privada. Já na terceira tela marcar conforme o print abaixo:
Na próxima tela você irá escolher a senha do certificado exportado, podendo manter a mesma ou incluir uma nova. Seguindo irá salvar o arquivo como um .PFX, escolha o local para salvar.
Agora vamos para a importação no dominio (keystore.jks), faça um backup da keystore.jks. Abra o portecle e em File > Open Keystore File localize a keystore.jks do dominio desejado (<domain>\config).
Observcação: Esse procedimento server para o arquivo Cacerts também, onde no Cacerts deve ser escolhido a opção File > Open Ca Certs Keystore, Import Trusted Certificate e importe a cadeia de certificado, por padrão, extensões .cert, .crt, .cer, .pem.
A senha da Keystore por padrão é "changeit", mas há casos que é a senha de acesso a console admin do Glassfish (geralmente adminadmin).
Após abrir a Keystore vá em Tools > Import Key Pair, localize o certificado digital exportado no processo anterior. Insira a senha do certificado digital definido na exportação, na próxima tela clique em "OK".
Na tela seguinte será apresentado o Alias desejado para o certificado digital (vamos precisar deste Alias depois)
Será solicitado para inserir uma nova senha e confirmar, aqui é necessário que seja inserido a senha da Keystore (changeit ou da console do glassfish).
Após importado o certificado será apresentado na lista de certificados da Keystore, o certificado após importado sempre deverá ter mais de um certificado na cadeia, conforme o exemplo usado:
Após validado, clique em "Salvar".
Agora que o certificado esta dentro do dominio, precisamos configurar o mesmo no listener https do dominio. Acesse a console admin do glassfish (geralmente esta na porta 4848).
Acesse o menu Configurations > server-config > Network Config > Network Listeners > http-listener-2 (o listener 2 por padrão é o do https, mas isso pode ser alterado).
Dentro do listener vá na aba "SSL", precisamos alterar o campo "Certificate NickName" inserido o Alias criado na importação do certificado na Keystore.
Clique em Save e reinicie o dominio.
O processo para quem vai atualizar é o mesmo até a importação na Keystore, neste caso atentar ao nome do Alias. Delete o existente, salve e depois importe o novo colocando o mesmo Alias. Com isso não será necessário alterar o nome no listener do dominio. Apenas reiniciar o dominio.