2010-07-07 4 views
2

Je tente de créer un client de service Web sécurisé SSL en utilisant la configuration CXF Spring et je me demande comment il est possible de dire à CXF d'utiliser ce certificat client dans mon keystore. Cela devrait exister parce que si mon keystore contient beaucoup de certificat, comment CXF est-il supposé faire pour trouver le bon?CXF SSL Spring configuration - Chaîne de certificat client vide

Voici ma configuration:

<http-conf:conduit name="{urn:ihe:iti:xds-b:2007}DocumentRepositoryPortType.http-conduit"> 
    <http-conf:client AutoRedirect="true" Connection="Keep-Alive"/> 
<http-conf:tlsClientParameters secureSocketProtocol="SSL"> 
    <sec:keyManagers keyPassword="storepass"> 
      <sec:keyStore type="JKS" password="storepass" file="src/main/resources/keystore.jks" /> 
     </sec:keyManagers> 
    <sec:trustManagers> 
      <sec:keyStore type="JKS" password="storepass" file="src/main/resources/truststore.jks" /> 
    </sec:trustManagers> 
    <sec:cipherSuitesFilter> 
     <sec:include>.*_EXPORT_.*</sec:include> 
    <sec:include>.*_EXPORT1024_.*</sec:include> 
    <sec:include>.*_WITH_DES_.*</sec:include> 
    <sec:include>.*_WITH_NULL_.*</sec:include> 
    <sec:exclude>.*_DH_anon_.*</sec:exclude> 
    </sec:cipherSuitesFilter> 
    </http-conf:tlsClientParameters> 
</http-conf:conduit> 

Dans le

<sec:keyManagers keyPassword=" 
    <sec:keyStore type="JKS" password="storepass" file="src/main/resources/keystore.jks" /> 
</sec:keyManagers> 
section

, est-il possible d'écrire quelque chose comme

alias="mycertificate" 

? J'ai cherché sur plusieurs sites Web mais aucun résultat pour le moment.

En fait, mon problème est que lorsque mon client CXF communique avec un serveur sécurisé SSL, il y a une demande de certificat provenant du serveur afin de m'identifier avec un certificat. Le serveur me dit quelles sont les autorités de cert qu'il attend, dans mon keystore j'ai un certificat qui a été certifié par une de ces autorités mais il n'y a aucune transmission de certificat de mon client ...

Voici comment il semble dans les journaux SSL:

CertificateRequest:

*** CertificateRequest 
Cert Types: RSA, DSS, 
Cert Authorities: 
<CN=****, DC=****, DC=****> 
Others authorities... 

vide chaîne de certificat client:

*** Certificate chain 
*** 

avez-vous les gars avez une idée?

Merci d'avance!

Répondre

1

Il est probable que l'attribut "name" sur le canal http est incorrect. Il doit s'agir du nom du point de terminaison (à partir de l'élément Service) et non du nom du port.

Cependant, je recommanderais d'utiliser une URL pour le nom.

 
<http-conf:conduit name="http://localhost:8080/.*" .....> 
... 
</http-conf> 

Notez le caractère générique (. *) À la fin pour correspondre à toutes les URL.

+0

Vous avez raison. En fait, j'ai essayé ce type de configuration mais la valeur que j'ai utilisée ne fonctionnait pas ... Merci! – reef