unable to find valid certification path to requested target
Вам необходимо предоставить хранилище ключей действительный сертификат для хоста (в данном случае qosic.net), к которому вы пытаетесь подключиться через https (ssl).
Вы можете инициализировать свой собственный контекст SSL, см. здесь для примеров.
Или вы можете игнорировать все сертификаты (которые взломаны, НЕ ДЛЯ ПРОИЗВОДСТВА) с этим кодом
@ Test
public void test1 () генерирует исключение {
CloseableHttpClient defaultHttpClient = HttpClients.createDefault();
String uri = "https://localhost/healthcheck";
try {
defaultHttpClient.execute(new HttpGet(uri));
fail();
} catch (SSLHandshakeException e) {
// do nothing
}
SSLContextBuilder builder = new SSLContextBuilder();
builder.loadTrustMaterial(null, new TrustStrategy() {
@Override
public boolean isTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException {
return true;
}
});
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(builder.build());
CloseableHttpClient customHttpClient = HttpClients.custom().setSSLSocketFactory(sslConnectionSocketFactory).build();
CloseableHttpResponse response = customHttpClient.execute(new HttpGet(uri));
assertEquals(200, response.getStatusLine().getStatusCode());
}