Ошибка рукопожатия при подключении к URL через HttpsURLConnection (Java), но не через CURL? - PullRequest
0 голосов
/ 07 февраля 2019

Я пишу код клиента для подключения к серверу (который не находится под моим контролем).Люди, которые поддерживают приложение на сервере, предоставили мне файл .crt и .key.Я использовал их и создал свое собственное хранилище ключей.

Когда я использую указанное хранилище ключей с утилитой CURL, я могу установить соединение с URL-адресом хоста.Но когда я загружаю хранилище ключей в KeyManagerFactory и использую его в HttpsURLConnection, я получаю предупреждение «сбой рукопожатия».

Я проверил Интернет и обнаружил, что наборы шифров, не совпадающие между сервером и клиентом, могут вызвать это.Но я пробовал каждый пакет, который у меня есть, и он дает тот же результат.Я думаю, что хранилище ключей не должно быть проблемой, потому что CURL при его использовании может подключиться, и если я пытаюсь подключиться без использования хранилища ключей, даже утилита CURL дает сбой.Таким образом, хранилище ключей должно быть правильным.

Одна вещь, которую я заметил, это то, что когда я делаю getLocalCertificates (), я всегда получаю ноль.Означает ли это, что ни один из моих сертификатов не отправляется на сервер?Мой Java-код отклоняет сертификаты, которые есть в моем хранилище ключей?Какие могут быть причины для этого?Могу ли я в любом случае подтвердить, что это именно то, что происходит?

Когда я выполняю getServerCertificates (), я получаю 5 сертификатов, но getLocalCertificates () всегда имеет значение null.

Другая странная вещь заключается в том, чтокогда я отправляю запрос на тот же URL через Почтальон, сервер отвечает!Я даже не использовал хранилище ключей или что-то подобное, у Postman есть собственный склад ключей / сертификат, который авторизован?

У меня есть сильное предчувствие, что getLocalCertificates (), будучи нулевым, является причиной того, что мой Java-код ломается, но догадки мне не помогают.

Ответы, которые могут помочь мне определить или изолировать проблему, были бы великолепны.Ну, на этом этапе я бы взял любое руководство и работал над ним.

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