我在尝试时获取此异常(未找到客户端证书) 连接到需要客户端证书的安全Web服务。我是 使用由axis2自动生成的Web服务客户端,使用 Eclipse向导。
这是调用代码,它导致最后一行中的异常:
System.setProperty("javax.net.ssl.trustStore","C:\\Archivos de programa\\Java\\jre7\\lib\\security\\cacerts");
System.setProperty("javax.net.ssl.trustStorePassword", "changeit");
System.setProperty("javax.net.ssl.keyStore","D:\\Perfil Usuario\\internet\\Escritorio\\workspace\\certificados\\clientes.jks");
System.setProperty("javax.net.ssl.keyStorePassword", "changeit");
ServicioBoletinStub lala = new ServicioBoletinStub();
ConsultaDeCatalogo cons = new ConsultaDeCatalogo();
cons.setArgs0("SECCIONES");
ConsultaDeCatalogoResponse conResp = lala.consultaDeCatalogo(cons);
客户端证书导入“clientes.jks”密钥库,以及所有 身份验证路径的其他所需证书位于“cacerts”中。
我唯一需要做的就是转换客户端证书 .p12到.cer,因为keytool抱怨.p12文件不是 x509证书。 .p12文件使用密码加密,但是.cer 文件不是,所以我担心期间会遗漏一些东西 转换。我对处理证书很新,所以我不知道我是什么 我失踪了。
我还使用SSLPoke来测试连接,并且没有给出任何错误。
非常感谢。
答案 0 :(得分:1)
好的,问题出在客户端证书的导入过程中,如怀疑的那样。 Keytool没有将私钥导入“clientes.jks”密钥库。
我从此密钥库中删除了所有内容,并按照此帖子(http://cunning.sharp.fm/2008/06/importing_private_keys_into_a.html)导入客户端证书和私钥。
无论如何,我认为Axis2应该指定异常消息来自SOAP响应消息:我认为它是自己生成的。