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


Ответы (0 шт):