我有一个问题,我必须通过客户端证书进行身份验证。
我的代码:
<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并传递客户端证书时,它显示成功
答案 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"/>