Отправьте сертификат X509 в заголовке запроса Https, используя шаблон rest - PullRequest
0 голосов
/ 04 августа 2020

Привет, я работаю над задачей, которая требует от меня выполнения HTTPS-вызова на сервер. Этот сервер требует, чтобы наш сертификат в заголовке запроса был добавлен отдельно с параметрами заголовка как «clientCert». Я просмотрел много ссылок о том, как это можно сделать, но я не мог сделать это возможным. И возможно, что ничего не понял из данного решения.

Я хочу отправить сертификат в заголовке запроса с параметром заголовка «clientCert». Может ли кто-нибудь помочь мне в этом. Пожалуйста, не рассматривайте это как дубликат любой другой ссылки SO, поскольку они не работали для меня. Я использую Spring Boot, пожалуйста, найдите мой код ниже.

@Configuration
public class SSLConfig{
 private static final String KEY_PASS="password"

static{

System.setProperty("javax.net.ssl.trustStore", SSLConfig.class.getClassLoader().getResource("client.jks").getFile())
System.setProperty("javax.net.ssl.trustStorePassword", KEY_PASS)

System.setProperty("javax.net.ssl.keyStore", SSLConfig.class.getClassLoader().getResource("client.jks").getFile())
System.setProperty("javax.net.ssl.keyStorePassword", KEY_PASS)

javax.net.ssl.HttpsURLConnection.setDefaultHostnameVerifier(new HostNameVerifier(){

       public boolean verify(String hostname, SSLSession sslSession){
           return "serverhostname".equals(hostname);
        }
  });
}


   @Bean
   public RestTemplate restTemplate(){
    return new RestTemplate()
   }
}

А затем в моем сервисе

@Service
public class ConnectorService{
 
@Autowired
RestTemplate restTemplate;

  public void getData(){
    HttpHeaders headers = new HttpHeaders();
  
    headers.setContentType(MediaType.APPLICATION_JSON);
    headers.set("clientCert", <Here I need put my X509 certificate>);
    HttpEntity entity = new HttpEntity<>(headers);
    ResponseEntity<String> response  = 
    restTemplate.exchange("https://www.test.com/getData",HttpMethod.POST, entity, String.class);

    System.out.println(response.getBody());

  }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...