error de herramienta de claves Se ha manipulado el almacén de claves o la contraseña era incorrecta

191

Recibo el siguiente error al generar certificados en mi máquina local.

C:\Users\abc>keytool -genkey -alias tomcat -keyalg RSA
Enter keystore password:
keytool error: java.io.IOException: Keystore was tampered with, or password was incorrect

Creo que hay algunos problemas en la versión jdk. Ejecuté el mismo comando en la máquina de mi colega y está funcionando bien.

Por favor comparta sus aportes.

C4CodeE4Exe
fuente
1
¿Estás dando la contraseña correcta? y ejecutando el comando desde el directorio adecuado?
dev2d
1
A medida que lo estoy creando, estoy ingresando una nueva contraseña. ¿Desde qué directorio debo ejecutarla?
C4CodeE4Exe
keytool -genkeypair -alias tomcat -keyalg RSA -keystore D: \ keystore.jks intente esto para generar el almacén de claves y luego exporte cer como keytool -export -alias mycert -keystore D: \ keystore.jks -file vorburger.cer
dev2d
¿Puede aclarar si tendrá el mismo efecto que con "keytool -genkey -alias tomcat -keyalg RSA"?
C4CodeE4Exe
¿me puede decir el propósito de generar este cer?
dev2d

Respuestas:

89

Por su descripción, supongo que está en la máquina de Windows y su hogar es abc

Entonces ahora: porque

Cuando ejecutas este comando

keytool -genkey -alias tomcat -keyalg RSA

porque no está especificando un almacén de claves explícito, intentará generar (y en su caso, ya que está obteniendo una excepción para actualizar) el almacén C:\users\abc>.keystorede claves y, por supuesto, debe proporcionar una contraseña anterior para .keystore mientras creo que está proporcionando su versión (un uno nuevo).

Solución

  1. Elimine .keystorede la C:\users\abc>ubicación e intente el comando

  2. o intente seguir el comando que creará un nuevo xyzkeystore:

    keytool -genkey -keystore xyzkeystore -alias tomcat -keyalg RSA

Nota: -genkey ahora es bastante viejo, -genkeypairaunque ambos funcionan por igual.

Kalher
fuente
Aunque lo descubrí por mi cuenta. "Eliminar .keystore de la ubicación C: \ users \ abc> y probar el comando" es la solución correcta.
C4CodeE4Exe
¿Es posible entregar el pase de almacén de claves en los argumentos?
user1767754
2
He eliminado el archivo de almacén de claves existente y luego seguí el comando keytool -genkey -alias key0-keyalg RSA, luego me pide una nueva contraseña y otros datos, le di. Pero aún así, cuando intento compilar apk firmado, muestra el mismo mensaje de error: "El almacén de claves fue manipulado o la contraseña era incorrecta" ¿Cuál es el problema aquí?
266

Lo resolví usando la contraseña predeterminada para el almacén de claves de cacerts: 'changeit'

sarrdou
fuente
jaja ... así que en realidad no cambia la contraseña a una nueva, y el trabajo predeterminado: D
Muhammad Suleman
gracias :) funcionó a mi fin ... y estaba usando la contraseña que usé para exportar el archivo .cer ..
Danyal Sandeelo
Trabajó para mi. ¡Gracias!
Colefner
158

Esta respuesta será útil para los nuevos usuarios de Mac (también funciona para Linux, Windows 7 de 64 bits).

La contraseña vacía funcionó en mi mac. (pegue la línea de abajo en la terminal)

keytool -list -v -keystore ~/.android/debug.keystore

cuando solicita

Enter keystore password:  

simplemente presione el botón enter (No escriba nada). Debería funcionar.

Asegúrese de que sea para el debug.keystore archivo predeterminado , no para su archivo de almacén de claves basado en el proyecto (la contraseña puede cambiar para esto).

Funciona bien para MacOS Sierra 10.10+ también.

Escuché que también funciona para el entorno Linux. Todavía no lo he probado en Linux.

Zumry Mohamed
fuente
1
Gracias. Funcionó en mi Windows 10 para depurar el almacén de claves
Vinayak Singh
11

Usar changeit para la contraseña también es importante.

Este comando finalmente funcionó para mí (con embarcadero):

 keytool -genkey -keyalg RSA -alias selfsigned -keystore keystore.jks -storepass changeit -validity 360 -keysize 2048
thouliha
fuente
11

En tomcat 8.5 preste atención para escribir el nombre correcto de los atributos. Este es mi código en server.xml:

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
           maxThreads="150" SSLEnabled="true">
    <SSLHostConfig>
        <Certificate certificateKeystoreFile="conf/keystore" certificateKeystorePassword="mypassword" type="RSA"/>
    </SSLHostConfig>
</Connector>

Puede visitar https://tomcat.apache.org/tomcat-8.5-doc/config/http.html para ver todos los atributos

gopeca
fuente
1
¡Gracias por indicar de dónde se deriva la contraseña! :)
N00b Programador
7

He resuelto este problema utilizando la contraseña predeterminada " changeit ".

tapas talukder
fuente
4

Funciona en Windows

abra el símbolo del sistema (presione la tecla de Windows + R, luego escriba "cmd" sin comillas en el cuadro de diálogo que aparece y luego presione la tecla Intro).

luego escriba el código sniff a continuación:

  1. cd C: \ Archivos de programa \ Java \ jdk1.7.0_25 \ bin

luego escriba el siguiente comando

  1. keytool -list -keystore "C: / Documents and Settings / Your Name / .android / debug.keystore"

Entonces le pedirá la contraseña de Keystore ahora. La contraseña predeterminada es tipo "android" e ingrese o simplemente presione enter "NO TIPE NINGUNA CONTRASEÑA".

Avinash Shinde
fuente
3

Verifica tu carpeta de inicio ~/.gradle/gradle.properties. A veces, si tiene gradle.propertiesen el directorio de inicio, toma detalles de allí. Puede cambiar eso o eliminar los archivos. Luego tomará los detalles requeridos de su carpeta local.

Ankit Sinha
fuente
1

Si está trabajando para firmar su aplicación Flutter siguiendo esta guía, cree y publique una aplicación de Android y ejecute este error. Espero que esta respuesta te ayude.

En mi caso, cambié la ruta para almacenar mi key.jks. Esto me sucedió porque había un archivo existente en esa ruta.

keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key

Este comando almacena el archivo key.jks en su directorio de inicio. Para almacenarlo en otro lugar, cambie el argumento que pasa al parámetro -keystore.

En mi caso,

keytool -genkey -v -keystore /Users/Y/Desktop/X/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias keyYour

es decir, X - Nombre de usuario e Y - nombre de la carpeta

A continuación, se le pedirá a Introduzca la contraseña del almacén de claves: y volver a entrar nueva contraseña . Aquí puede usar la contraseña que desee.

Sin embargo, mantenga el archivo del almacén de claves privado; ¡no lo verifique en el control de fuente pública!

Abel Tilahun
fuente
0

Resumiendo los consejos de esta página, terminé con lo siguiente:

keytool -genkeypair -keystore ~/.android/release.keystore -alias <my_alias> -storepass <my_cert_pass> -keyalg RSA

Luego recibí una serie de preguntas sobre el nombre, la organización, la ubicación y la contraseña de mi alias.

Gorgona
fuente
0

error de keytool: java.io.IOExcepción: el almacén de claves fue alterado o la contraseña era incorrecta

Resolví mi problema cuando cambié la ruta del almacén de claves C: \ MyWorks \ mykeystore a C: \ MyWorks \ mykeystore.keystore .

CLIFFORD PY
fuente
1
la primera ruta "C: \ MyWorks \ mykeystore" no es un almacén de claves.
Jorgesys
0

En mi caso, necesitaba tener rootacceso.

Alex Po
fuente
0

Solucioné este problema eliminando el archivo de salida y ejecutando el comando nuevamente. Resulta que NO sobrescribe el archivo anterior. Tuve este problema al renovar un certificado Let's Encripte con Tomcat

gimp3695
fuente
0
 [root@localhost Certificate]# openssl pkcs12 -export -in 
 /opt/Certificate/115c99f4c5aa98f5.crt -inkey /opt/Certificate/ravi.in.key -certfile 
/opt/Certificate/gd_bundle-g2-g1.crt -out RaviNew.p12

Enter Export Password: <Password>
Verifying - Enter Export Password: <Password>

Nota: - Por encima de Exportar Pasworrd, escriba en cualquier lugar porque es necesario crear un archivo JKS (depende de su elección qué contraseña desea hacer)

  keytool -importkeystore -srckeystore DigiEduNew.p12 -srcstoretype pkcs12 -destkeystore finaldigiEdu.jks -deststoretype JKS
  Importing keystore DigiEduNew.p12 to finaldigiEdu.jks...
  Enter destination keystore password: <Any Password >
  Re-enter new password: <Any Password >
  Enter source keystore password: <.P12 Password >
  Entry for alias 1 successfully imported.
  Import command completed:  1 entries successfully imported, 0 entries failed or 
  cancelled



 Warning:
 The JKS keystore uses a proprietary format. It is recommended to migrate to PKCS12 
 which is an industry standard format using "keytool -importkeystore -srckeystore 
 finaldigiEdu.jks -destkeystore finaldigiEdu.jks -deststoretype pkcs12".
Ravi Tyagi
fuente
0

Para mí lo resolví cambiando las contraseñas de la letra árabe a la letra inglesa, pero primero fui a la carpeta y eliminé la clave generada, luego funciona.

Mohammed Salim
fuente
0

En mi caso con Xamarin Forms 4.7 y Visual Studio 2019 16.7.0 Preview 3.1, el problema era la incompatibilidad de versiones de las herramientas Android Build recientemente actualizadas (apksigner) y JDK. Actualizó JDK a la última y apuntó la nueva ruta JDK en Herramientas-> Opciones-> Xamarin-> Configuración de Android, y funciona.

Mehmet AVŞAR
fuente