Encriptando system properties passwords no Weblogic

Publicado por Filippe em 23/11/2012

[ Hits: 5.209 ]

 


Encriptando system properties passwords no Weblogic



Recentemente tive um problema em que precisávamos consumir um recurso de um terceiro na Internet e o mesmo fazia uso de um certificado Two-way handshake, que possui uma senha para ser configurado no cliente, neste caso, do Weblogic.

A Oracle não nos deu uma solução, então, decidimos tentar por si só resolver o problema. Foi onde desenvolvemos o EncryptSystemProperties.war para intermediar a configuração da senha do certificado.

Modo de usar

Antes de tudo é necessário configurar o CLASSPATH inserindo os arquivos de configuração ("encrypted-properties.properties" e "log4j.properties"), para facilitar um pouco a configuração, eu optei por criar um diretório dentro do domínio utilizado.

Para este exemplo, usamos a seguinte árvore de diretórios:

/opt/weblogic/user_projects/domains/spolti01/EncryptSystemProperties
├── encrypted-properties.properties
└── log4j.properties

Para configurar o CLASSPATH, foi usado o arquivo "setDomainEnv.sh" e foi incluso no final do arquivo o diretório acima no CLASSPATH:

export CLASSPATH="$CLASSPATH:/opt/weblogic/user_projects/domains/spolti01/EncryptSystemProperties"

Após configurar, realizar deploy do "EncryptSystemProperties.war" no Weblogic e colocá-lo como target no mesmo domínio/cluster/managedServer em que o certificado for configurado.

No decorrer do deploy, duas informações devem estar presentes nos logs, a configuração do novo diretório contendo os arquivos no CLASSPATH e os logs da aplicação informando que o parâmetro foi configurado com sucesso:
CLASSPATH=/opt/weblogic/patch_wls1035/profiles/default/sys_manifest_classpath/weblogic_patch.jar:/opt/weblogic/patch_ocp
360/profiles/default/sys_manifest_classpath/weblogic_patch.jar:/usr/java/jdk1.6.0_30/lib/tools.jar:/opt/weblogic/wlserver_10.3
/server/lib/weblogic_sp.jar:/opt/weblogic/wlserver_10.3/server/lib/weblogic.jar:/opt/weblogic/modules/features/weblogic.server
.modules_10.3.5.0.jar:/opt/weblogic/wlserver_10.3/server/lib/webservices.jar:/opt/weblogic/modules/org.apache.ant_1.7.1/lib/
ant-all.jar:/opt/weblogic/modules/net.sf.antcontrib_1.1.0.0_1-0b2/lib/ant-
contrib.jar:/opt/weblogic/wlserver_10.3/common/derby/lib/derbyclient.jar:/opt/weblogic/wlserver_10.3/
server/lib/xqrl.jar:/opt/weblogic/user_projects/domains/spolti01/EncryptSystemProperties


Vejam a parte destacada, o diretório configurado no CLASSPATH foi setado com sucesso.

E também, a mensagem abaixo deve ser impressa nos logs indicando que o parâmetro "javax.net.ssl.keyStorePassword" foi setado com sucesso:
Spolti - 13:04:23,905 INFO EncryptSystemPropertiesService - Carregando arquivo encrypted-properties.properties.
Spolti - 13:04:23,983 INFO EncryptSystemPropertiesService - encrypted-properties.properties caregado com sucesso.
Spolti - 13:04:24,256 INFO EncryptSystemPropertiesService - SSL Keystore Password setado com sucesso.


Comparando os processos da JVM temos:

Antes:
-Djavax.net.ssl.keyStoreType=PKCS12 -Djavax.net.ssl.keyStore=/local/para/o/certificado.p12 -
Djavax.net.ssl.keyStorePassword=secreto

Depois:
-Djavax.net.ssl.keyStoreType=PKCS12 -Djavax.net.ssl.keyStore=/local/para/o/certificado.p12


O artigo na íntegra, está disponível em:
Outras dicas deste autor

Iniciando mais de uma instância de memcached no mesmo servidor

Iniciando JBoss sem privilégios - Erro: "java.net.SocketException: Permission denied" [Resolvido]

Host key verification failed [RESOLVIDO]

Adicionar repositório RPM FORGE no CentOS

Twittar via terminal no Linux

Leitura recomendada

Recuperando senhas de datasources encriptados em JBoss

APIs de criptografia em Java

Log4J 2.15.0 com problemas, veja a solução definitiva!

Telegram Desktop no Linux Mint e Ubuntu

Referências bibliográficas em TeX

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts