Entendo que o keystore normalmente reteria chaves públicas / privadas e o armazenamento confiável apenas chaves públicas (e representa a lista de partes confiáveis com as quais você pretende se comunicar). Bem, essa é minha primeira suposição, então, se isso não estiver correto, provavelmente não comecei muito bem ...
No entanto, eu estava interessado em entender como / quando você distingue as lojas ao usar o keytool.
Até agora, eu criei um keystore usando
keytool -import -alias bob -file bob.crt -keystore keystore.ks
que cria meu arquivo keystore.ks. Eu respondo yes
à pergunta em que confio em bob, mas não está claro para mim se isso criou um arquivo de keystore ou um arquivo de armazenamento confiável? Também posso configurar meu aplicativo para usar o arquivo.
-Djavax.net.ssl.keyStore=keystore.ks -Djavax.net.ssl.keyStorePassword=x
-Djavax.net.ssl.trustStore=keystore.ks -Djavax.net.ssl.trustStorePassword=x
e com System.setProperty( "javax.net.debug", "ssl")
set, posso ver o certificado em certificações confiáveis (mas não na seção keystore). O certificado específico que estou importando tem apenas uma chave pública e pretendo usá-lo para enviar coisas por uma conexão SSL para Bob (mas talvez seja melhor deixar para outra pergunta!).
Qualquer indicação ou esclarecimento seria muito apreciado. A saída do keytool é a mesma que você importa e é apenas uma convenção que diz que um é um keystore e o outro um trust trust? Qual é o relacionamento ao usar SSL, etc?