我找到了解决方案,我应该使用keyStore而不是trustStore,但是更重要的是,我正在使用的库(cxf
2.7.1)似乎存在问题,我必须直接在代码中设置SSL属性:
// BEGIN FIX to avoid certificate error, need to set this up in the pre for cxfString storePath = System.getProperty("javax.net.ssl.keyStore");String storePassword = System.getProperty("javax.net.ssl.keyStorePassword");String storeType = System.getProperty("javax.net.ssl.keyStoreType");KeyStore keyStore = KeyStore.getInstance(storeType);keyStore.load(new FileInputStream(storePath), storePassword.toCharArray());KeyManagerFactory factory = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());factory.init(keyStore, storePassword.toCharArray());KeyManager[] keyManagers = factory.getKeyManagers();Client client = ClientProxy.getClient(port);HTTPConduit conduit = (HTTPConduit) client.getConduit();conduit.setTlsClientParameters(new TLSClientParameters());conduit.getTlsClientParameters().setKeyManagers(keyManagers);


