Java - путь к базе доверенных сертификатов - свойство набора не работает?

Я имею, устанавливают самоподписанный сертификат для тестирования ssl соединения Java - однако, это отказывается определять местоположение базы доверенных сертификатов Java. Я сохранил копии его в/Java/jre6/lib/security в дополнение к папке, где классы компилируются в (im использующий netbeans), и также в/java/jre6/bin ни одно из вышеупомянутого, кажется, не работает, потому что, когда я выполняю следующее - база доверенных сертификатов = пустой указатель.

public class ShowTrustStore {

    public static void main(String[] args) {

        System.setProperty("javax.net.ssl.keyStore", "keystore.jks");
        System.setProperty("javax.net.ssl.trustStrore", "cacerts.jks");
        System.setProperty("javax.net.ssl.keyStorePassword", "changeit");



        String trustStore = System.getProperty("javax.net.ssl.trustStore");
        if (trustStore == null) {
            System.out.println("javax.net.ssl.trustStore is not defined");
        } else {
            System.out.println("javax.net.ssl.trustStore = " + trustStore);
        }
    }
}

как установить путь правильно?

********** ОБНОВИТЕ ************ Используя getFile () метод и еще некоторые отладочные данные:

package ssltest;

public class Main {

    public static void main(String[] args) {

//        System.setProperty("javax.net.ssl.keyStore", "/keystore.jks");
//        System.setProperty("javax.net.ssl.trustStrore", "/java.home/cacerts.jks");
//        System.setProperty("javax.net.ssl.keyStorePassword", "changeit");
//        System.setProperty("javax.net.ssl.trustStorePassword", "changeit");

        try {
            Main.class.getResource("trustStore.jks").getFile();
        } catch (Exception e) {
            e.printStackTrace();
        }

        String trustStore = System.getProperty("javax.net.ssl.trustStore");

        if (trustStore == null) {
            String storeLoc;
            storeLoc = System.getProperty("java.class.path");
            System.out.println("classpath: " + storeLoc);
        }

        trustStore = System.getProperty("javax.net.ssl.trustStore");
        if (trustStore == null) {
            System.out.println("javax.net.ssl.trustStore is not defined");
        } else {
            System.out.println("javax.net.ssl.trustStore = " + trustStore);
        }
    }
}

выполненный: java.lang. Путь к классу NullPointerException: C:\Users\Main\Documents\NetBeansProjects\sslTest\build\classes; C:\Users\Main\Documents\NetBeansProjects\sslTest\src at ssltest.Main.main(Main.java:15), javax.net.ssl.trustStore не определяется УСПЕШНАЯ СБОРКА (общее время: 0 секунд)

49
задан Duncan X Simpson 9 April 2018 в 18:36
поделиться

2 ответа

У вас опечатка - это trustStore .

Кроме настройки переменных с помощью System.setProperty(...), вы также можете использовать

-Djavax.net.ssl.keyStore=path/to/keystore.jks
66
ответ дан 7 November 2019 в 11:28
поделиться

Похоже, у вас есть опечатка - «Truststrore» должен быть «Truststore», то есть

System.setProperty("javax.net.ssl.trustStrore", "cacerts.jks");

должен быть:

System.setProperty("javax.net.ssl.trustStore", "cacerts.jks");
45
ответ дан 7 November 2019 в 11:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: