2017-09-01 132 views
0

我有一个问题,我必须通过身份验证的客户端证书的目的。基于证书的身份验证使用骆驼码头

我的代码:

<camel:sslContextParameters id="sslContextParameters"> 

    <camel:keyManagers keyPassword="indigo"> 
     <camel:keyStore resource="/home/sahil/Demo/new.jks" password="changeit"/> 
    </camel:keyManagers> 

    <camel:trustManagers> 
    <camel:keyStore resource="/home/sahil/Demo/123.jks" password="changeit"/> 
     </camel:trustManagers> 
     <camel:serverParameters clientAuthentication="WANT" />  
</camel:sslContextParameters> <to uri="jetty:https://xx.x.xx/activate"/> 

每次我打这个服务,我得到一个错误

2017年9月1日15时32分38秒[资讯] 3934#3934:* 11客户端没有发送所需的SSL证书,而读客户端请求头,

当我击中curl命令的URL,并通过客户端证书它显示成功

回答

1

您的jetPa-uri中缺少对contextParameter的引用。 它应该看起来像:

<to uri="jetty:https://xx.x.xx/activate?sslContextParametersRef=sslContextParameters"/>

这是从Camel Wiki:端点

春基于DSL的配置

xml<camel:sslContextParameters id="sslContextParameters"><camel:keyManagers keyPassword="keyPassword"> <camel:keyStore resource="https://stackoverflow.com/users/home/server/keystore.jks" password="keystorePassword"/> </camel:keyManagers> </camel:sslContextParameters> <to uri="jetty:https://127.0.0.1/mail/?sslContextParametersRef=sslContextParameters"/>

+0

感谢lahu89,我已经试过相同的,但仍然收到相同的错误 –

+0

尝试激活日志记录。我推荐VM参数-Djavax.net.debug = ALL。 阅读的内容很多,但您会看到是否将使用哪些证书。 另请参阅:http://docs.oracle.com/javase/7/docs/technotes/guides/security/jsse/ReadDebug.html – lahu89

相关问题