我在尝试连接到需要客户端证书的安全 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 测试了连接,没有报错。
非常感谢。