I recently did something very similar (not with websocket, instead with netty4-http though). However looking at websocket docs, its very much similar. You'll have to use sslContextParameters endpoint option to specify the contextparameter. In my case I created it as a (spring) bean and provided the bean name in this parameter. The way I created this bean is following:

public SSLContextParameters myMutualAuthParams() {
// setup keystore having public/private key.
// This can be used as trust store (for trusting external certs)
//    and/or can be used for our own certificate for mutual certauth
KeyStoreParameters ksp = new KeyStoreParameters();
ksp.setResource("/ssl/clientcert.pfx"); // classpath resource
ksp.setPassword("pfxpassword"); // change as per your setup
ksp.setType("pkcs12");

// supply private key pass that shall be used for mutual auth
KeyManagersParameters pkParams = new KeyManagersParameters();
pkParams.setKeyPassword("pfxpassword");  // change as per your setup
pkParams.setKeyStore(ksp);

SSLContextParameters scp = new SSLContextParameters();
scp.setKeyManagers(pkParams);
// this is NOT needed for pkcs12 but you may need it for
// jks keystore types having multiple private keys
// scp.setCertAlias("");

// this SSLContextParameters will use JRE default keystore
//    for trusting incoming certificates
// If you want to override trust store, use following:
// TrustManagersParameters tmp = new TrustManagersParameters();
// tmp.setKeyStore(ksp);
// scp.setTrustManagers(tmp);
// Ofcourse you can use *NEW* KeyStoreParameters as your TrustManager
//   with this SSLContextParameters


return scp;
}

Hope it saves time for someone as I ended up spending more than a day to get it right after going through docs again and again and trying hit and trials before I get it right.

Thanks,
*Avnish Pundir*


On 13-12-2016 23:00, Zoran Regvart wrote:
Hi Mark,
there is the `clientAuthentication` parameter in `serverParameters` of
`SSLContextParameters` that you can set to `REQUIRE`. I wager adding
SSLContextParameters instance to registry and referencing in the
component/endpoint configuration should do the trick.

zoran

[1]http://camel.apache.org/camel-configuration-utilities.html#CamelConfigurationUtilities-SSLContextServerParameters

On Tue, Dec 13, 2016 at 6:24 PM, Mark <elihusma...@gmail.com> wrote:
I have a requirement for mutually-authenticated SSL with a websocket.  Does
the Camel-Websocket component support this functionality?  According to the
camel websocket page, the SSL params are for consumers only which makes me
think that 2-way SSL isn't supported.


Cheers,
Mark




--

------------------------------
Disclaimer: The information contained in this communication is confidential, private, proprietary, or otherwise privileged and is intended only for the use of the addressee.Unauthorized use, disclosure, distribution or copying is strictly prohibited and may be unlawful. If you have received this communication in error, please delete this message and notify the sender immediately - Samin TekMindz India Pvt.Ltd. ------------------------------

Reply via email to