我知道这类问题经常被问到,但是我在没有帮助的情况下尝试了许多解决方案...
我得到以下异常信息:
java.security.cert.CertificateParsingException:X.509证书为 不完整:必须将SubjectAlternativeName扩展标记为关键 当主题字段为空
此错误已引起服务提供商的注意,他现在致力于解决方案。
但是我需要尽快解决。
到目前为止,我已经尝试了多种解决方案,例如:
private static SSLContext createSSLContext() {
try {
TrustManager[] trustAllCerts = new TrustManager[]{new X509TrustManager() {
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
return null;
}
public void checkClientTrusted(X509Certificate[] certs, String authType) {
}
public void checkServerTrusted(X509Certificate[] certs, String authType) {
}
}};
SSLContext context = SSLContext.getInstance("SSL");
context.init(null, trustAllCerts, new java.security.SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(context.getSocketFactory());
HostnameVerifier allHostsValid = new HostnameVerifier() {
public boolean verify(String hostname, SSLSession session) {
return true;
}
};
HttpsURLConnection.setDefaultHostnameVerifier(allHostsValid);
return context;
} catch (Exception e) {
LOG.error(e.getMessage(), e);
throw new HttpClientError(e.toString());
}
}
但是它没有帮助,我真的不确定它是否相关。 但这是忽略SSL问题的解决方案之一。
让我强调一下,我的代码用于自动化测试,因此不会影响生产。至少现在还没有。
如何暂时忽略此错误并继续进行操作?
谢谢!