我正在为由供应商控制的 SOAP 网络服务构建客户端。不幸的是,他们的开发服务器有一个我无法验证的不安全(自签名)证书。每次我尝试发出请求时,Apache Axis 都会失败。有没有办法忽略 SSL 验证错误?我显然不想在生产环境中这样做,但它在我的开发环境中会很好。
最佳答案
尝试禁用证书验证,在发出请求调用之前输入以下代码 -
// Create a trust manager that does not validate certificate chains
final TrustManager[] trustAllCerts = new TrustManager[]{new X509TrustManager() {
@Override
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
return null;
}
@Override
public void checkClientTrusted(X509Certificate[] certs, String authType) {
}
@Override
public void checkServerTrusted(X509Certificate[] certs, String authType) {
}
}
};
// Install the all-trusting trust manager
try {
SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null, trustAllCerts, null);
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
} catch (Exception ex) {
// take action
}
关于java - 使用 Axis 客户端忽略无效证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15016734/