Ich weiß, dass es schon einmal gefragt wurde, aber ich habe alle Lösungen ausprobiert, die ich gefunden habe, und es funktioniert immer noch nicht.Apache Http Client SSL-Zertifikat Fehler
Grundsätzlich versuche ich, etwas Inhalt über Apache Http Client (4.3) zu bekommen und die Website, die ich verbinde, hat einige SSL-Probleme.
Zuerst bekam ich und SSLException
mit und unrecognized_name
Nachricht. Ich habe versucht, dies zu umgehen, indem ich die Eigenschaft jsse.enableSNIExtension
auf false
gesetzt habe.
Dann habe ich diese Ausnahme: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
Ich habe dann versucht, meinen gewonnene Versorgung SSLFactory
, die alle Zertifikate akzeptieren würden, aber ich bin immer noch die gleiche Ausnahme bekommen. Hier ist mein Code:
private static void sslTest() throws Exception {
System.setProperty("jsse.enableSNIExtension", "false");
SSLContext sslContext = SSLContexts.custom()
.loadTrustMaterial(null, new TrustSelfSignedStrategy())
.useTLS()
.build();
SSLConnectionSocketFactory connectionFactory =
new SSLConnectionSocketFactory(sslContext, new AllowAllHostnameVerifier());
CookieStore cookieStore = new BasicCookieStore();
HttpClientContext context = HttpClientContext.create();
context.setCookieStore(cookieStore);
CloseableHttpClient httpclient = HttpClients.custom()
.setSSLSocketFactory(connectionFactory)
.setDefaultCookieStore(cookieStore)
.build();
URI uri = new URIBuilder()
.setScheme("https")
.setHost(BASE_URL)
.build();
String responseBody = httpclient.execute(new HttpGet(uri), RESPONSE_HANDLER);
}
Alle Hilfe wird sehr geschätzt!
Bitte schauen Sie sich meine Antwort in einer anderen Frage an: https://stackoverflow.com/a/45734000/8477758 – EyouGo