Como ativar o SSL com certificado de cliente para o cliente Websphere MQ?
Somos um aplicativo em um ambiente maior e um cliente para alguma interface de dados, usando o Websphere MQ 8.x. Nosso aplicativo é um aplicativo Java EE em execução no WildFly 9 que usa um adaptador de recursos (wmq.jmsra.rar
), que é implementado junto com o arquivo EAR no mesmo AS. Interagimos com o MQ Server nas duas direções. Portanto, por um lado, temos alguns MDBs (que são devidos a origens históricas ainda no formato EJB 2.x sem anotações) listando algumas filas e que são configurados peloejb-jar.xml
descritor de implementação, contendo as propriedades de configuração de ativaçãodestinationType, channel, queueManager, hostName, username, password
. Por outro lado, temos um remetente que consulta uma fábrica de conexões de filas e uma fila via JNDI e cria uma conexão.
Agora, temos o requisito com um servidor MQ recém-estabelecido para se comunicar via SSL e um certificado de cliente. Recebemos esse certificado do pessoal do servidor para nossa máquina. Então, minhas perguntas são:
O que precisa ser feito para funcionar com a configuração descrita acima?Isso é possível apenas por configuração e, portanto, transparente para o aplicativo ou o aplicativo usa especificamente SSL, apresenta o certificado ou algo semelhante?Isso está em conflito com outro armazenamento de chaves já usado por outra parte do aplicativo?É necessário algum software IBM MQ adicional para fazê-lo funcionar? (Nosso cliente é apenas o RAR, nenhum software está instalado e nenhum servidor MQ do nosso lado deve ser estabelecido.)Atualizar: Fui definir as propriedades globais do JSSE para a VM, pois ela resolveu meu problema como um começo.
Foi necessário definir os seguintes parâmetros:
-Djavax.net.ssl.trustStore=<location of trustStore>
-Djavax.net.ssl.keyStore=<location of keyStore>
-Djavax.net.ssl.keyStorePassword=<password>
Além disso, como estou usando VM não IBM, havia o seguinte parâmetro para definir:
-Dcom.ibm.mq.cfg.useIBMCipherMappings=false
Em seguida, foi necessário definir a propriedade do conjunto de cifras na configuração RAR nostandalone-full.xml
junto com os outros parâmetros de conexão da minha instalação do WildFly:
<resource-adapter id="wmq.jms.rar">
...
<connection-definitions>
<connection definition ...>
<config-property name="sslCipherSuite">xxx</config-property>
...
</resource-adapter">
E, finalmente, os MDBs listados nas filas também precisavam ser configurados para usar o conjunto de cifras, portanto, no meu caso, tive que adicionar isso no ejb-jar.xml adicionando para cada MDB:
<activation-config-property>
<activation-config-property-name>sslCipherSuite</activation-config-property-name>
<activation-config-property-value>xxx</activation-config-property-value>
<activation-config-property>