Por Gabriel Prestes*

Quando você precisar migrar um ambiente ou uma aplicação para o Glassfish, você encontrará algumas adversidades. São elas:

  1. Migrar os certificados de um Oracle Wallet(p12) para um Java Keystore/Truststore; (imaginando que o ambiente legado é um OHS (Oracle HTTP Server);
  2. Importar certificado de outro ApplicationServer com o keystore já configurado.

Glassfish: importar um certificado SSL válido e existenteNão incluo aqui a criação de um novo certificado SSL, certificado auto assinado, ou renovações, pois a “privatekey” pode ser recriada sem problemas. Já a publicação se aplica quando a chave privada não pode ser recriada por alguma razão, seja pelo uso de um outro sistema ou impacto de negócio.    

Privatekey: Chave privada usada no sistema de criptografia baseado em chaves.  

Mas qual o grande problema? Bem, o Glassfish suporta apenas um keystore e um truststore que vem previamente setado para uso do alias ‘s1as’. Quando configurado o ‘http-listener-2’, atendendo a porta 28181, este certificado não é reconhecido como válido, pois é para fins administrativos. Portanto, é necessário substituí-lo, o que é mais comum, ou incluir um novo alias no keystore localizado no diretório ‘config’ do domain.

IMPORTANTE: Sete a variável $JAVA_HOME para o mesmo JDK do oracle_commons dentro do $MIDDLEWARE_HOME. Os comandos abaixo incluem o JDK/bin no PATH, então não precisei passar o PATH completo do orakpi e keytool.

  1. Migrar os certificados de um Oracle Wallet(p12) para um Java Keystore
orapki wallet pkcs12_to_jks -wallet ewallet.p12 -pwd coloque_a_senha_do_wallet_aqui -jksKeyStoreLoc keystore.jks-conv -jksKeyStorepwd changeit -jksTrustStoreLoc cacerts.jks-conv -jksTrustStorepwd changeit
  1. Importar certificado de outro ApplicationServer com o keystore já configurado;

Como mencionado, o Glassfish suporta apenas um keystore. Logo precisará fazer o merge do keystore e do truststore:

keytool -v -importkeystore -srckeystore cacerts.jks-conv -srcstoretype JKS -destkeystore cacerts.jks -deststoretype JKS
keytool -v -importkeystore -srckeystore keystore.jks-conv -srcstoretype JKS -destkeystore keystore.jks -deststoretype JKS

Neste ponto precisará saber as senhas de todos os JKSs, pois serão solicitadas as senhas dos keystores de origem e destino. Caso as mesmas não estejam, utilize o comando abaixo para ajustá-las:

keytool -keypasswd -new changeit -keystore keystore.jks -storepass “senha do keystore” -alias orakey1 -keypass “senha antiga”

Possíveis problemas durante o processo serão relacionados ao keystore de origem ser 32 bits e o de destino 64 bits.Então sugiro manter como o de destino o que atenda o hardware de seu ambiente de Glassfish, assim como a senha do certificado alias que deseja utilizar tem que ser igual. Logo, utilize todas as senhas iguais a senha do master-password do Glassfish.

Não esqueça de após o merge dos keystore alterar o alias do certificado SSL do ‘http-listener-2’ para o alias desejado. Para visualizar o alias utilize o comando abaixo:  

keytool -list -v -keystore keystore.jks

 

Referências:

https://en.wikipedia.org/wiki/Public-key_cryptography

https://docs.oracle.com/cd/E19798-01/821-1751/6nmnci6aa/index.html

http://www.webfarmr.eu/2010/04/import-pkcs12-private-keys-into-jks-keystores-using-java-keytool/

https://www.sslshopper.com/article-most-common-java-keytool-keystore-commands.html

 

Gabriel Prestes *Gabriel Prestes é formando em Gestão da Tecnologia da Informação, arquiteto de middleware da ilegra com experiência de mais de 5 anos em suítes de middleware Oracle e RedHat. É um entusiasta de carros antigos.

 

 

 

Tagged on:     

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

CAPTCHA
Change the CAPTCHA codeSpeak the CAPTCHA code