Además de una excelente respuesta @ Pascal-thivent 's:
La contraseña del almacén de claves tiene dos propósitos - si no se proporciona, keytool
se niega a permitir que cambie el contenido de la tienda con nuevos contenidos, por ejemplo, eliminando las entradas de certificado existentes o agregando nuevas.
Por supuesto, si tiene acceso de escritura para actualizar el archivo del almacén de claves usando keytool
(no es setuid), puede reemplazar los contenidos utilizando otra herramienta que no verificó la contraseña. Y sabemos que la tienda y su formato son legibles sin una contraseña, así que presumiblemente podemos escribir lo que queremos allí.
Ahí es donde entra la contraseña de verificación. Cuando se anotan las entradas de la tienda, la contraseña de la tienda suministrada se utiliza para calcular un resumen de los contenidos de la tienda, como salados por la contraseña. Este es un hash/digest de un solo sentido, por lo que sin la contraseña, no puede verificar si el contenido de la tienda ha sido alterado o no. Del mismo modo, alguien malicioso que no conoce la contraseña tampoco puede modificar el contenido de la tienda y producir el resumen de resumen que se generaría con esa contraseña.
Es por eso que cuando proporciona una contraseña sin contraseña, keytool
acaba de advertirle que no puede verificar que la tienda no haya sido manipulada. Si proporciona una inválida contraseña, o la tienda ha sido manipulado, obtendrá un mensaje diferente:
Enter keystore password: keytool error: java.io.IOException: Keystore was tampered with, or password was incorrect
keytool
fue incapaz de volver a crear el hash existentes digesto basado en la corriente almacena el contenido y la contraseña que proporcionó, por lo que la contraseña es incorrecta o el almacén de claves está en peligro: keytool
no se puede saber, pero supone que usted o el software que lee la tienda lo saben.
Tenga en cuenta que mientras que el almacén de claves término se utiliza generalmente, se refiere igualmente a keystores y almacenes de confianza. Menos generalmente, un almacén de claves es más a menudo una tienda de identidades y contiene identidades y sus claves privadas secretas, como se utiliza, por ejemplo. por un servidor que ejecuta HTTPS. Un truststore más a menudo contiene solo claves públicas y ninguna clave privada, por lo que no hay secretos, pero es importante determinar en qué identidades confía un cliente .
@Pascal, sí. El servidor que estoy utilizando no tiene un certificado CA, por lo que necesita un almacén de confianza para que pueda hacer la autenticación ssl para el servidor. – sixtyfootersdude
Tampoco entiendo por qué se necesita una contraseña para TrustSphere, que es la parte cliente de SSL. Específicamente, cuando una CA no está involucrada. ¿Has logrado resolver esto? –