Доступ к сайту, требующему входа в самозаверяющий сертификат с помощью Apache HttpClient

#java #apache-httpclient-4.x

#java #apache-httpclient-4.x

Вопрос:

Если я хочу подключиться к сайту, который требует базовой аутентификации, а также использует самозаверяющий сертификат, я создаю a CredentialsProvider , который затем позволяет мне получить доступ к сайту.

Если я хочу получить доступ к сайту, который использует самозаверяющий сертификат, я использую sslContextBuilder и разрешаю использовать все сертификаты.

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

Я уверен, что это просто простой синтаксис, но как мне это сделать?

  CloseableHttpClient hc = HttpClients.custom()
      .setSslcontext(sslcb.build())
      .setDefaultCredentialsProvider(credsProvider)
      .build();
  

Комментарии:

1. Добро пожаловать в StackOverflow, в чем именно ваша проблема? Вы получаете исключение или ошибку компиляции?

2. Кроме того, вероятно, было бы полезно упомянуть, что это проблема с библиотекой Apache HttpClient. Снова приветствую

Ответ №1:

Возможно, вы захотите попробовать setSSLSocketFactory вместо setSslcontext

 CloseableHttpClient httpclient = HttpClients.custom()
    .setSSLSocketFactory(sslsf)
    .setDefaultCredentialsProvider(credsProvider)
    .build();
  

Комментарии:

1. Да, спасибо, я поддержу ваш ответ, но я не могу. Вот и все, в конце концов 🙂