Ошибка с сертификатом SSL при обновлении весенней загрузкиJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Ошибка с сертификатом SSL при обновлении весенней загрузки

Сообщение Anonymous »

У меня есть веб-приложение, созданное с помощью Spring Boot Java. Это приложение получает данные с сервера, используя https ubuntu для заданий. Я использовал оставшийся шаблон для подключения, но у сервера есть сертификат SSL, после этого я хочу сделать изображения для экспорта на другой сервер.
Я пробовал много методов, но эта ошибка не возникает. :

Ошибка построения пути PKIX: sun.security.provider.certpath.SunCertPathBuilderException: невозможно найти действительный путь сертификации к запрошенной цели

Код:
package dashlet_filter.dashfilter.config;
import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
import org.apache.hc.client5.http.impl.classic.HttpClients;
import org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager;
import org.apache.hc.client5.http.socket.ConnectionSocketFactory;
import org.apache.hc.client5.http.socket.PlainConnectionSocketFactory;
import org.apache.hc.client5.http.ssl.NoopHostnameVerifier;
import org.apache.hc.client5.http.ssl.SSLConnectionSocketFactory;
import org.apache.hc.core5.http.config.Registry;
import org.apache.hc.core5.http.config.RegistryBuilder;
import org.apache.hc.core5.ssl.SSLContexts;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
import org.springframework.http.client.support.BasicAuthenticationInterceptor;
import org.springframework.web.client.RestTemplate;

import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
import java.security.cert.X509Certificate;
import java.time.Duration;

@Configuration
public class AppConfig {
@Bean
public RestTemplate restTemplate() throws Exception {
TrustManager[] trustAllCerts = new TrustManager[]{
new X509TrustManager() {
@Override
public void checkClientTrusted(X509Certificate[] chain, String authType) {
}

@Override
public void checkServerTrusted(X509Certificate[] chain, String authType) {
}

@Override
public X509Certificate[] getAcceptedIssuers() {
return null;
}
}
};

SSLContext sslContext = SSLContexts.custom()
.loadTrustMaterial((chain, authType) -> true)
.build();
sslContext.init(null, trustAllCerts, new java.security.SecureRandom());

SSLConnectionSocketFactory sslSocketFactory = new SSLConnectionSocketFactory(
sslContext,
NoopHostnameVerifier.INSTANCE
);

PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager(
RegistryBuilder.create()
.register("http", PlainConnectionSocketFactory.INSTANCE)
.register("https", sslSocketFactory)
.build()
);

CloseableHttpClient httpClient = HttpClients.custom()
.setConnectionManager(connectionManager)
.build();

HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(httpClient);
requestFactory.setConnectTimeout(Duration.ofSeconds(5));
requestFactory.setConnectionRequestTimeout(Duration.ofSeconds(5));

RestTemplate restTemplate = new RestTemplate(requestFactory);

restTemplate.getInterceptors().add(new BasicAuthenticationInterceptor("xxxxxx", "xxxxxx"));

return restTemplate;
}
}


Подробнее здесь: https://stackoverflow.com/questions/793 ... estamplate
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»