带有client-auth的jetty ssl抛出null证书异常

时间:2014-03-22 08:00:19

标签: java ssl jetty cxf

我正在尝试使用客户端身份验证在ssl模式下运行jetty。 我传递keystore.But而不是传递truststore,我将我的证书导入java / jre / lib / security / cacerts。请找到jetty.xml配置

  
    <Call class="java.lang.System" name="setProperty">
        <Arg>javax.net.ssl.keyStore</Arg>
        <Arg><SystemProperty name="jetty.home" default="." />/../workspace/conf/xyz.ks</Arg>
    </Call>
    <Call class="java.lang.System" name="setProperty">
        <Arg>javax.net.ssl.keyStorePassword</Arg>
        <Arg>abc</Arg>
    </Call>
    <Call class="java.lang.System" name="setProperty">
        <Arg>javax.net.ssl.keyStoreType</Arg>
        <Arg>JKS</Arg>
    </Call>

Socketconnector

<Call name="addConnector">
      <Arg>
          <New class="org.mortbay.jetty.security.SslSocketConnector">
            <Set name="Port"><SystemProperty name="port"/></Set>
            <Set name="maxIdleTime">600000</Set>
            <Set name="keystore"><SystemProperty name="javax.net.ssl.keyStore"/></Set>
            <Set name="keyPassword"><SystemProperty name="javax.net.ssl.keyStorePassword"/></Set>
            <!--Set name="truststore"><SystemProperty name="javax.net.ssl.trustStore"/></Set>
            <Set name="trustPassword"><SystemProperty name="javax.net.ssl.trustStorePassword"/></Set-->
            <Set name="needClientAuth">true</Set>
          </New>
        </Arg>
    </Call>

现在,当我点击网址https://localhost:1234/xyz?wsdl时,我会收到由于null证书链引起的bad_certificate异常。

i)java cacerts可以用来配置jetty吗? ii)是因为webservice调用,因为在日志中它显示为服务器已启动。

我正在使用jetty 6和cxf 2.6 webservice。

感谢, Keerthi。

1 个答案:

答案 0 :(得分:0)

将您的客户端证书添加到浏览器证书存储区后,您应该尝试从浏览器访问您的URL。顺便说一句,您将知道您的错误是由于服务器端还是客户端错误配置造成的。