WebClient (webflux spring) как сделать https запрос?
У меня есть задача - написать тестовый WebClient который будет стучаться по https на какой нибудь ресурс используя ssl сертификат. В интернете нарыл следующий ресурс https://client.badssl.com/. Что бы перейти на него нужно заиметь сертификат который можно скачать по следующей ссылке https://badssl.com/download/.
В общем у меня выходит следующий код
@Bean
public WebClient webClientWithTimeout() throws SSLException {
File ssl1 = new File("badssl.com-client.pem");
File key = new File("key.txt");
SslContext sslContext = SslContextBuilder
.forClient()
.keyManager(ssl1, key, "badssl.com")
.build();
final HttpClient httpClient = HttpClient
.create()
.secure(sslContextSpec -> sslContextSpec.sslContext(sslContext))
.option(ChannelOption.CONNECT_TIMEOUT_MILLIS, TIMEOUT)
.responseTimeout(Duration.ofMillis(TIMEOUT))
.doOnConnected(connection -> {
connection.addHandlerLast(new ReadTimeoutHandler(TIMEOUT, TimeUnit.MILLISECONDS));
connection.addHandlerLast(new WriteTimeoutHandler(TIMEOUT, TimeUnit.MILLISECONDS));
});
return WebClient.builder()
.baseUrl(baseUrl)
.clientConnector(new ReactorClientHttpConnector(httpClient))
.build();
}
Скачал файлы - вставлял их разными местами, много всего разного делал, но по факту результата не добился. Может кто нибудь объяснить как правильно это сделать? Или же может есть примеры с другими ресурсами работающими по https и требующие ssl сертификаты?
Все это дело падает на этапе поднятия spring контекста со следующей ошибкой - nested exception is java.lang.IllegalArgumentException: File does not contain valid private key