Исключение SSL в JAVA6, но нет в JAVA8 - PullRequest
0 голосов
/ 18 марта 2020

Hy

Я пытаюсь подключить программу java к REST API.

С той же частью кода у меня есть исключение Java в Java 6 и оно отлично работает в Java 8.

Это та же среда:

  • trustore
  • машина
  • unix пользователь

код:

import java.io.DataInputStream;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;

public class MainClass {

    public static void main (String[] args){

        String serviceUrl = "https://api.domain.com" + "/endpont/path";
        try {
            URL url = new URL(serviceUrl);
            URLConnection connection = null;
            try{
                connection = url.openConnection();
                connection.setRequestProperty("Accept", "application/json");
                connection.setRequestProperty("Content-Type", "application/json");
                String body = "";
                String inputLine;
                DataInputStream input = new DataInputStream (connection.getInputStream());
                while (((inputLine = input.readLine()) != null)){
                    body += inputLine;
                }
                System.out.println(body);
            } catch (IOException e) {
                e.printStackTrace();
            }
        } catch (MalformedURLException e) {
            e.printStackTrace();
        }
    }
}

ошибка в Java 6: sun.security.provider.certpath.SunCertPathBuilderException: невозможно найти действительный путь сертификации для запрошенной цели

Кто-нибудь знает, как это отличается? Могу ли я использовать некоторые приемы, чтобы получить тот же результат в Java 6?

CN сертификата - это подстановочный знак: "* .domain.com". Это может быть причиной?

Я пробовал несколько API, но там все использовали слой SSL SSL. Вы знаете другого, чтобы заменить его?

1 Ответ

0 голосов
/ 18 марта 2020

JRE имеет собственное хранилище ключей, , где могут храниться сертификаты . Возможно, ваш JDK / JRE для Java 6 имеет ключи, отличные от Java 8.

...