I have a Spring Boot Application that I've created instantiates an instance of ActiveMqSslBroker. I am attempting to connect to this broker using HermesJMS as a client.
I've configured the connection factory in Hermes as follows:
- Class: org.apache.activemq.ActiveMQSslConnectionFactory
- brokerURL: ssl://localhost:61616
- keyStore: /path/to/client-keystore-containing-client-cert.ks
- keyStoreKeyPassword: *****
- keyStoreType: PKCS12
- trustStore: /path/to/trust-store-containing-broker-cert.ts
- trustStorePassword: ****
- trustStoreType: PKCS12
The broker is configured in my spring-boot application as follows:
- SSL Connector:
- brokerUrl: ssl://localhost:61616
- KeyManagers:
- returned from KeyManagerFactory.getKeyManagers()
- KeyStore: /path/to/key-store-containing-broker-cert.ks
- returned from KeyManagerFactory.getKeyManagers()
- TrustManagers:
- returned from TrustManagerFactory.getTrustManagers()
- TrustStore: /path/to/trust-store-containing-client-cert.ks
- returned from TrustManagerFactory.getTrustManagers()
The broker is rejecting the connection requests from Hermes with the following error:
javax.net.ssl.SSLHandshakeException: Received fatal alert: certificate_unknown
So apparently HermesJMS is not sending the client certificate that is contained in its configured keyStore. Does the key have to have a specific alias to be picked up and used by Hermes? Is there a property I can set to specify the alias from the keyStore to use?