java отправляет почтовый запрос с SSL, ошибка PKIX - PullRequest
0 голосов
/ 24 июня 2018

Я новичок в управлении SSL и сертификатами Java. Я пытаюсь вызвать API, предоставленный моим партнером, и это двухсторонний SSL. Шифрование не используется, и партнер должен знать только источник запроса.

Я сгенерировал свой закрытый ключ и использовал его для получения действительного сертификата от ЦС, а затем передал файл CRT & PEM моему партнеру для установки на его серверах.

Используя curl с файлом pem и моим закрытым ключом, я легко могу вызвать их API.

curl -X POST -v -d '{"someparam1":"somevalue1"}' -H "Content-Type: application/json" https://api.domain.com/something --cert cn_file.pem --key cn_file.key

Теперь я хочу вызвать API через мой Java-код, используя OkHttp. Меня смущает добавление сертификата в хранилище ключей моей JVM. Я использовал openssl для преобразования pem в der и закрытый ключ в p12 и добавил их оба в cacerts.jks.

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

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

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

...