Я понимаю, что хранилище ключей обычно содержит закрытые / открытые ключи, а хранилище доверенных сертификатов - только открытые ключи (и представляет список доверенных сторон, с которыми вы собираетесь общаться). Ну, это мое первое предположение, так что если это не правильно, я, вероятно, не очень хорошо начал ...
Мне было интересно понять, как / когда вы различаете магазины при использовании keytool.
Итак, я создал хранилище ключей, используя
keytool -import -alias bob -file bob.crt -keystore keystore.ks
который создает мой файл keystore.ks. Я отвечаю yes
на вопрос, доверяю ли я Бобу, но мне неясно, создал ли он файл хранилища ключей или файл хранилища доверенных сертификатов? Я могу настроить свое приложение для использования файла как либо.
-Djavax.net.ssl.keyStore=keystore.ks -Djavax.net.ssl.keyStorePassword=x
-Djavax.net.ssl.trustStore=keystore.ks -Djavax.net.ssl.trustStorePassword=x
и с помощью System.setProperty( "javax.net.debug", "ssl")
set я могу видеть сертификат в доверенных сертификатах (но не в разделе хранилища ключей). Конкретный сертификат, который я импортирую, имеет только открытый ключ, и я собираюсь использовать его для отправки Бобу через SSL-соединение (но, возможно, лучше оставить его для другого вопроса!)
Любые указатели или разъяснения будут высоко ценится. Является ли вывод keytool одним и тем же независимо от того, что вы импортируете, и это просто соглашение, которое гласит, что одно является хранилищем ключей, а другое хранилищем доверия? Какая связь при использовании SSL и т. Д.?