Я просто создал базу доверенных сертификатов с Java keytool (для аутентификации сервера сервера, который не имеет сертификата CA). Однако я просто заметил что-то странное. Я запускаю свой клиент как это:
java -Djavax.net.ssl.trustStore=<PATHSTUFF>/client.keystore -classpath <STUFF> Client
(Примечание: нет указанного пароля),
Вышеупомянутые работы вызова.
Однако, когда я пробую это:
java -classpath <STUFF> Client
Это не работает. (Очевидно, это не работает, это требует базы доверенных сертификатов).
Я ожидал должен передавать в этой опции (но я не сделал):
-Djavax.net.ssl.trustStorePassword=mypass
Вопрос: разве Вам не нужен пароль для доступа к базе доверенных сертификатов? Пароль только для модификации? Что относительно keystore?
Пароль используется для защиты целостности хранилища ключей. если вы не укажете пароль хранилища, вы все равно сможете прочитать содержимое хранилища ключей. Команда keytool -list
демонстрирует это поведение (используйте его с пустым паролем).
Если вы не укажете хранилище доверенных сертификатов, вместо него будет использоваться хранилище по умолчанию. Я предполагаю, вы получаете сообщение об ошибке, что вам нужно указать доверенный магазин, чтобы доверять хосту, который вы запрашиваете? Склад доверенных сертификатов по умолчанию находится в $ JAVA_HOME / lib / security / jssecacerts.