keytool error O keystore foi violado ou a senha estava incorreta

191

Estou recebendo o seguinte erro ao gerar certificados na minha 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

Eu acho que há alguns problemas na versão jdk. Eu executei o mesmo comando na minha máquina de colegas e está funcionando bem.

Por favor, compartilhe suas entradas.

C4CodeE4Exe
fonte
1
você está dando a senha correta? e executando o comando no diretório apropriado?
dev2d #
1
Ao criar, digite uma nova senha. De qual diretório devo executá-la?
C4CodeE4Exe
keytool -genkeypair -alias tomcat -keyalg RSA -keystore D: \ keystore.jks tentar isso para a geração de armazenamento de chave e, em seguida, cer exportação como keytool -export -alias MyCert -keystore D: \ keystore.jks -file vorburger.cer
dev2d
Você pode esclarecer, isso terá o mesmo efeito que ocorreu com o "keytool -genkey -alias tomcat -keyalg RSA".
C4CodeE4Exe
você pode me dizer o objetivo de gerar esse cer?
precisa saber é o seguinte

Respostas:

89

Pela sua descrição, suponho que você esteja na máquina Windows e sua casa seja abc

Então agora: Causa

Quando você executa este comando

keytool -genkey -alias tomcat -keyalg RSA

como você não está especificando um keystore explícito, ele tentará gerar (e no seu caso, como você está recebendo uma exceção para atualizar) keystore C:\users\abc>.keystoree, é claro, você precisará fornecer uma senha antiga para .keystore enquanto eu acredito que você esteja fornecendo sua versão (um novo).

Solução

  1. Exclua .keystoredo C:\users\abc>local e tente o comando

  2. ou tente o seguinte comando que criará um novo xyzkeystore:

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

Nota: -genkey agora é antigo, use bastante, -genkeypairapesar de ambos funcionarem igualmente.

Kalher
fonte
Embora eu tenha descoberto por conta própria. "Exclua .keystore do local C: \ users \ abc> e tente o comando" é a solução certa.
C4CodeE4Exe
é possível entregar o passe de keystore nos argumentos?
user1767754
2
Excluí o arquivo keystore existente e segui o comando keytool -genkey -alias key0-keyalg RSA; depois, ele me pede uma nova senha e outros dados que forneci. Mas ainda agora, quando tento criar um apk assinado, ele mostra a mesma mensagem de erro - "O keystore foi adulterado ou a senha estava incorreta" Qual é o problema aqui?
265

Eu o resolvi usando a senha padrão para o armazenamento de chaves cacerts: 'changeit'

sarrdou
fonte
haha .. então realmente não é alterar a senha para um novo, e de trabalho padrão: D
Muhammad Suleman
obrigado :) .. ele trabalhou na minha end..and eu estava usando a senha que eu usei para exportar o arquivo .cer ..
Danyal Sandeelo
Trabalhou para mim. Obrigado!
Colefner 18/10/19
157

Esta resposta será útil para o novo usuário do Mac (Works para Linux, Windows 7 de 64 bits também).

Senha vazia funcionou no meu mac. (cole a linha abaixo no terminal)

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

quando solicitar

Enter keystore password:  

basta pressionar o botão Enter (não digite nada). Deve funcionar.

Por favor, verifique se é o padrão debug.keystore arquivo , não o arquivo de keystore baseado em projeto (a senha pode mudar para isso).

Também funciona bem para o MacOS Sierra 10.10+.

Ouvi dizer que funciona para o ambiente linux também. Ainda não testei isso no Linux.

Zumry Mohamed
fonte
1
Obrigado. Funcionou no meu windows 10 para keystore de depuração
Vinayak Singh 05/01
11

Usar changeit para a senha também é importante.

Este comando finalmente funcionou para mim (com jetty):

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

No tomcat 8.5, preste atenção para escrever o nome correto dos atributos. Este é o meu código no 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>

Você pode visitar https://tomcat.apache.org/tomcat-8.5-doc/config/http.html para ver todos os atributos

gopeca
fonte
1
Obrigado por indicar de onde a senha está sendo referida! :)
N00b Pr0grammer
7

Eu resolvi esse problema usando a senha padrão " changeit ".

tapas talukder
fonte
4

Funciona no Windows

abra o prompt de comando (pressione a tecla Windows + R e digite "cmd" sem aspas na caixa de diálogo que aparece e, em seguida, pressione a tecla Enter).

digite o código sniff abaixo:

  1. cd C: \ Arquivos de programas \ Java \ jdk1.7.0_25 \ bin

digite o seguinte comando

  1. keytool -list -keystore "C: / Documentos e configurações / Seu nome / .android / debug.keystore"

Em seguida, ele solicitará a senha do Keystore agora. A senha padrão é do tipo "android" e digite ou apenas pressione Enter "NÃO TIPO QUALQUER SENHA".

Avinash Shinde
fonte
3

Verifique sua pasta pessoal ~/.gradle/gradle.properties. Às vezes, se você tiver gradle.propertiesno diretório inicial, é necessário obter detalhes a partir daí. Você pode alterar isso ou excluir os arquivos. Em seguida, serão necessários os detalhes necessários da sua pasta local.

Ankit Sinha
fonte
0

Resumindo os conselhos desta página, concluí o seguinte:

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

Então, recebi um conjunto de perguntas sobre nome, organização, local e senha do meu apelido.

goRGon
fonte
0

keytool error: java.io.IOException: Keystore foi violado ou a senha estava incorreta

Resolvi meu problema quando alterei o caminho C: \ MyWorks \ mykeystore para C: \ MyWorks \ mykeystore.keystore .

CLIFFORD PY
fonte
1
o primeiro caminho "C: \ MyWorks \ mykeystore" não é um keystore.
Jorgesys 06/04
0

No meu caso, eu precisava ter rootacesso.

Alex Po
fonte
0

Corrigi esse problema excluindo o arquivo de saída e executando o comando novamente. Acontece que NÃO substitui o arquivo anterior. Eu tive esse problema ao renovar um certificado vamos criptografar com o tomcat

gimp3695
fonte
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: - Acima do Export Pasworrd, anote em qualquer lugar, pois é necessário criar o arquivo JKS (depende da sua escolha da senha que você deseja criar)

  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
fonte
0

Para mim, resolvi alterando as senhas da letra árabe para a letra inglesa, mas primeiro fui para a pasta e apaguei a chave gerada, depois ela funcionou.

Mohammed Salim
fonte
0

Se você estiver trabalhando para assinar seu aplicativo Flutter, seguindo este guia Crie e libere um aplicativo Android e execute esse erro. Espero que esta resposta ajude você.

No meu caso, mudei o caminho para armazenar meu key.jks. Isso aconteceu comigo porque eu havia um arquivo existente nesse caminho.

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

Este comando armazena o arquivo key.jks no diretório inicial. Para armazená-lo em outro lugar, altere o argumento que você passa para o parâmetro -keystore.

No meu caso,

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

ie X - Nome de usuário e Y - nome da pasta

Em seguida, você será solicitado a Introduzir a senha de armazenamento de chaves: e Re-digite a nova senha: . Aqui você pode usar a senha que desejar.

No entanto, mantenha o arquivo keystore privado; não verifique no controle de fonte pública!

Abel Tilahun
fonte
0

No meu caso, com o Xamarin Forms 4.7 e o Visual Studio 2019 16.7.0 Preview 3.1, o problema era incompatibilidade de versão das ferramentas Android Build (apksigner) e JDK atualizadas recentemente. Atualizou o JDK para o mais recente e apontou o novo caminho do JDK em Ferramentas-> Opções-> Xamarin-> Configurações do Android e funciona.

Mehmet AVŞAR
fonte