Como entro em um keystore Java protegido por senha ou altero a senha?

120

Estou tentando importar um certificado confiável para o keystore Java cacerts , mas tenho um problema. Tentei listar os certificados confiáveis ​​existentes e parece que o keystore não está protegido por senha.

$ keytool -list -keystore cacerts
Enter keystore password:

*****************  WARNING WARNING WARNING  *****************
* The integrity of the information stored in your keystore  *
* has NOT been verified!  In order to verify its integrity, *
* you must provide your keystore password.                  *
*****************  WARNING WARNING WARNING  *****************

Keystore type: JKS
Keystore provider: SUN

Your keystore contains 76 entries

Eu tentei importar um certificado confiável:

$ keytool -importcert -alias "JiraCert" -file /root/c9ssl.crt -keystore /etc/java-6-sun/security/cacerts
Enter keystore password:  
Keystore password is too short - must be at least 6 characters
Enter keystore password:  
Keystore password is too short - must be at least 6 characters
Enter keystore password:  
Keystore password is too short - must be at least 6 characters
Too many failures - try later

Eu também tentei alterar a senha de "none" para algo:

$ keytool -storepasswd -keystore cacerts.back
Enter keystore password:
Keystore password is too short - must be at least 6 characters
Enter keystore password:
Keystore password is too short - must be at least 6 characters
Enter keystore password:
Keystore password is too short - must be at least 6 characters
Too many failures - try later
Eslam
fonte

Respostas:

205

o que significa que o armazenamento de chaves cacerts não é protegido por senha

Essa é uma suposição falsa. Se você ler com mais cuidado, descobrirá que a listagem foi fornecida sem verificar a integridade do keystore porque você não forneceu a senha. A listagem não requer uma senha, mas seu keystore definitivamente possui uma senha, conforme indicado por:

Para verificar sua integridade, você deve fornecer sua senha do keystore.

A senha padrão do cacerts do Java é "changeit", a menos que você esteja em um Mac, onde é "changeme" até um certo ponto. Aparentemente, a partir do Mountain Lion (com base nos comentários e outra resposta aqui), a senha do Mac agora também é "changeit", provavelmente porque a Oracle também está lidando com a distribuição da Mac JVM.

Ryan Stewart
fonte
Obrigado! Eu não conseguia descobrir por que a senha era !!
Jesse Barnum
2
Sim obrigado. Que senha padrão terrível. Também não consegui descobrir o que era. Acabei de excluir o arquivo cacerts e o substituí pelo meu.
usar o seguinte código
3
Como datasmid diz abaixo, a senha Mac se você estiver executando Mountain Lion também é "changeit"
Niro
19
"A senha padrão do cacerts do Java é" changeit "": +1000 se eu puder! Obrigado Stackoverflow!
precisa
55

A senha do keystore por padrão é: "changeit". Eu funcionei com meus comandos que você digitou aqui, para a importação do certificado. Espero que você já tenha resolvido o seu problema.

GeoKlar
fonte
4

O Mac Mountain Lion tem a mesma senha agora que usa o Oracle.

bbaassssiiee
fonte
0

A entrada em um keystore Java protegido por senha e a alteração da senha podem ser feitas com a ajuda da própria linguagem de programação Java.

Esse artigo contém o código para isso:

thetechawesomeness.ideasmatter.info

Oleksii Kyslytsyn
fonte