Подписание http-запроса выданным сертификатом

Требуется отправлять запрос на стороннее API с сертификатом. В виду реализации стороннего API, ответ всегда с кодом 400, с ContentType text/html. Если отправлять запрос через тот же Postman, то видно, что сервер отвечает "No required SSL certificate was sent".

Для проверки самого API у меня есть сертификат формата pfx, который я подключил в браузер и сам Postman, но требуется также реализовать логику в коде.

Сертификат я сконвертил в .pem формат и положил в Путь_до_джавы/lib/security/cacerts. Ниже приведён код реализации:

HttpPost httpPost = new HttpPost("url-to-client");
httpPost.addHeader("Accept", "application/json;charset=utf-8");
httpPost.addHeader("Content-Type", "application/json;charset=utf-8");

KeyStore trustStore = KeyStore.getInstance(new File(System.getProperty("java.home"), "lib/security/cacerts"), "changeit".toCharArray());
HttpClientBuilder builder = new HttpClientBuilder();
CloseableHttpClient closeableHttpClient = builder
    .trustStore(trustStore)
    .build();

CloseableHttpResponse response = closeableHttpClient.execute(httpPost);
StatusLine statusLine = response.getStatusLine();

if (statusLine.getStatusCode() != 200) {
    String errorMessage = String.format("Не удалось отправить данные");
    throw new MyBisnessException(errorMessage, statusLine.getStatusCode());
}

Прошу подсказать, что не так, так как подобный функционал реализую впервые.


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