使用Camel Jetty进行基于证书的身份验证

时间:2017-09-01 14:15:43

标签: ssl apache-camel jetty mutual-authentication

我有一个问题,我必须通过客户端证书进行身份验证。

我的代码:

   <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/09/01 15:32:38 [info] 3934#3934:* 11客户端在读取客户端请求标头时未发送任何必需的SSL证书,

当我使用curl命令点击URl并传递客户端证书时,它显示成功

1 个答案:

答案 0 :(得分:1)

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

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

这来自Camel Wiki

基于Spring的端点配置

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