【发布时间】:2011-03-12 21:42:30
【问题描述】:
我正在尝试使用 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
***
你们有什么想法吗?
提前致谢!
【问题讨论】:
标签: java spring configuration ssl cxf