Florian B. created CAMEL-12719:
----------------------------------
Summary: Possibilité de charger un SSLContextParameter avec un
Keystore contenant plusieurs clés (alias)
Key: CAMEL-12719
URL: https://issues.apache.org/jira/browse/CAMEL-12719
Project: Camel
Issue Type: Improvement
Components: camel-core
Affects Versions: 2.22.0
Environment: Apache Tomcat 7, Camel 2.22.0, java 8, redHat 6.6
1 TrustStore.jks (12 certificats CA => 12 alias)
1 Keystore.jsk (5 clés => 5 alias => 5 passwords différents)
> 200 camelRoutes (file, soap, rest) secure, non-secure
Reporter: Florian B.
Fix For: 2.22.0
Bonjour,
J'aimerais pouvoir initialiser un seul SSLContextParameters au démarrage de
camel contenant mon truststore.jks (avec x>1 alias) et mon keystore.jks (avec
x>1 alias) afin de l'appeler (faire référence) dans les Routes (FTPs, HTTPs)
sans avoir à redéfinir un nouveau SSLContextParameter pour chaque EndPoint.
_<camel:sslContextParameters id="sslIContextParameters">_
_<camel:trustManagers>_
_<camel:keyStore password="${truststore.jks.file.password}"_
_resource="${truststore.jks.file.location}" />_
_</camel:trustManagers>_
_<camel:keyManagers >_
_<camel:keyStore password="${keystore.jks.file.password}"_
_resource="${keystore.jks.file.location}" />_
_</camel:keyManagers>_
_</camel:sslContextParameters>_
Lorsque mon Keystore contient x>1 alias, j'ai l'erreur suivante à la création
de la Route au démarrage :
*Caused by: org.apache.camel.ResolveEndpointFailedException: Failed to resolve
endpoint:
https4://<host>:<port>/<address>?authPassword=RAW(password)&authUsername=login&authenticationPreemptive=true&bridgeEndpoint=true&sslContextParameters=sslContextParameters&throwExceptionOnFailure=true
due to: Cannot recover key*
due to
*Caused by: java.security.UnrecoverableKeyException: Cannot recover key*
Lorsque mon keystore ne contient qu'une seule clé, cela fonctionne très bien.
_<camel:sslContextParameters id="sslIContextParameters">_
_<camel:trustManagers>_
_<camel:keyStore password="${truststore.jks.file.password}"_
_resource="${truststore.jks.file.location}" />_
_</camel:trustManagers>_
_<camel:keyManagers keyPassword="keyPassword">_
_<camel:keyStore password="${keystore.jks.file.password}"_
_resource="${keystore.jks.file.location}" />_
_</camel:keyManagers>_
_</camel:sslContextParameters>_
J'aimerais donc pouvoir appeler mon SSLContextParameter pour différents
EndPoint en précisant (si nécessaire) l'alias du Keystore nécessaire (en
précisant l'alias et/ou le mot de passe de la clé)
Objectif dans mon projet :
* 1 seul TrustStore.jks
* 1 seul Keystore.jsk
* 1 unique SSLContextParameter
* > 200 camelRoutes FTPs/HTTPs (ssl one way ou two way)
Merci beaucoup
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)