Davy De Waele created AMQ-5495:
----------------------------------

             Summary: ActiveMQSslConnectionFactory should support different 
keystore and key passwords
                 Key: AMQ-5495
                 URL: https://issues.apache.org/jira/browse/AMQ-5495
             Project: ActiveMQ
          Issue Type: Improvement
          Components: Broker
    Affects Versions: 5.10.0
            Reporter: Davy De Waele


The current ActiveMQSslConnectionFactory allows us to specify

- trustStore
- trustStorePassword
- keyStore
- keyStorePassword

In case the passphrase of the key contained in the keystore is different from 
the password of the keystore itself this connection factory cannot be used.

What we're missing is the following field

- keyStoreKeyPassword

In the ActiveMQ configuration such a setup is supported (via the 
SpringSslContext), however for accessing ActiveMQ via the 
ActiveMQSslConnectionFactory it is not.

Adding a keyStoreKeyPassword field and changing the createKeyManager slightly 
would fix this:

{noformat}
    protected KeyManager[] createKeyManager() throws Exception {
        
        KeyManagerFactory kmf = 
KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
        KeyStore ks = KeyStore.getInstance("jks");
        KeyManager[] keystoreManagers = null;
        if (keyStore != null) {
            byte[] sslCert = loadClientCredential(keyStore);

            if (sslCert != null && sslCert.length > 0) {
                ByteArrayInputStream bin = new ByteArrayInputStream(sslCert);
                ks.load(bin, keyStorePassword.toCharArray());
                kmf.init(ks, keyStoreKeyPassword !=null ? 
keyStoreKeyPassword.toCharArray() : keyStorePassword.toCharArray());
                keystoreManagers = kmf.getKeyManagers();
            }
        }
        return keystoreManagers;
    }
{noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to