java CXF SSL Spring配置空客户端证书链
我正在尝试使用CXF Spring配置构建一个SSL安全的Web服务客户端,我想知道如何告诉CXF在我的密钥库中使用这个客户端证书。 这应该存在,因为如果我的密钥库持有大量证书,那么CXF应该如何找到好的证书
以下是我的配置:
<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>
在
<sec:keyManagers keyPassword="
<sec:keyStore type="JKS" password="storepass" file="src/main/resources/keystore.jks" />
</sec:keyManagers>
第二部分,有没有一种方法可以写
alias="mycertificate"
?
我在几个网站上搜索了一下,但暂时没有结果
实际上,我的问题是,当我的CXF客户机与SSL安全服务器通信时,服务器会发出一个证书请求,以便用证书标识我自己。服务器告诉我它正在等待哪个证书颁发机构,在我的密钥库中,我确实有一个证书,该证书已由其中一个颁发机构认证,但没有来自我的客户端的证书传输
以下是它在SSL日志中的外观:
认证请求:
*** CertificateRequest
Cert Types: RSA, DSS,
Cert Authorities:
<CN=****, DC=****, DC=****>
Others authorities...
空客户端证书链:
*** Certificate chain
***
你们知道吗
提前谢谢
# 1 楼答案
http管道上的“name”属性可能是错误的。它应该是端点名称(在服务元素中),而不是端口类型名称
不过,我建议使用URL作为名称
请注意末尾的通配符(.*)以匹配所有URL