如何将CXF客户端的TLS/SSL Http身份验证用于Web服务?

ScA*_*er2 8 java ssl ws-security web-services cxf

我正在尝试访问由证书保护的Web服务.安全性在IIS上设置,Web服务就在它后面.

我不认为WS-SECURITY会进行这种类型的身份验证.在调用Web服务时,有没有办法传递客户端证书?

我刚刚收到一个IIS错误页面,上面写着"该页面需要客户端证书".

我正在使用CXF 2.1.4

Chr*_*ail 7

是的,这可以使用CXF.您需要设置客户端管道.您可以指定包含允许您访问IIS中的Web服务的证书的密钥库.只要您在此处使用的证书是IIS中已知的允许客户端,您就可以了.

<http:conduit name="{http://apache.org/hello_world}HelloWorld.http-conduit">

   <http:tlsClientParameters>
       <sec:keyManagers keyPassword="password">
            <sec:keyStore type="JKS" password="password"
                 file="src/test/java/org/apache/cxf/systest/http/resources/Morpit.jks"/>
       </sec:keyManagers>
       <sec:trustManagers>
           <sec:keyStore type="JKS" password="password"
                file="src/test/java/org/apache/cxf/systest/http/resources/Truststore.jks"/>
       </sec:trustManagers>

       ...

   </http:tlsClientParameters>
Run Code Online (Sandbox Code Playgroud)

样本来自:CXF Wiki