访问两个带证书的https业务接口,证书总是冲突
浅水湛湛 2018-04-12 09:37:04 系统需要访问微信支付,需要用到证书,另外需要访问一个保险接口,也需要用到证书。 结果总是出现证书冲突。
第一个调用的就可以顺利通过。
如果第一个调用微信支付,微信支付可以通过,但是保险接口就不能用了,报找不到证书。
如果第一个调用保险接口,微信支付接口就报找不到证书。
访问微信支付接口的部分代码:
try {
// 代码如下:修改证书路径跟密码即可
KeyStore keyStore = KeyStore.getInstance("PKCS12");
String cert_path = magicHelper.getProperty("wx.CERT");
String password = magicHelper.getProperty("wx.PARTNER");
FileInputStream instream = new FileInputStream(new File(
cert_path == null ? "E://temp//zcb//apiclient_cert.p12"
: cert_path));
keyStore.load(instream, password.toCharArray());
instream.close();
SSLContext sslcontext = SSLContexts.custom()
.loadKeyMaterial(keyStore, password.toCharArray()).build();
SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(
sslcontext,
new String[] { "TLSv1" },
null,
SSLConnectionSocketFactory.BROWSER_COMPATIBLE_HOSTNAME_VERIFIER);
访问保险接口的:
String chinaLifeKeyPath = magicHelper.getProperty("chinalifekey.path");
System.setProperty("javax.net.ssl.trustStore",
chinaLifeKeyPath+"server.jks");
System.setProperty("javax.net.ssl.trustStorePassword", "12345678");
// System.setProperty("javax.net.ssl.keyStore",
// "D:/temp/chezhan.jks");
System.setProperty("javax.net.ssl.keyStore",
chinaLifeKeyPath+"eshop_test.pfx");
System.setProperty("javax.net.ssl.keyStoreType", "PKCS12");
System.setProperty("javax.net.ssl.keyStorePassword", "123456");
System.setProperty("https.protocols", "TLSv1,SSLv3");
请各位大拿指导!