Certificado Digital: Como importar um arquivo .cer para um arquivo .truststore usando?

89

Alguém descobriu onde tem que lidar com o arquivo .truststore? e saber como importar .cer para o arquivo .truststore?

Não tenho certeza se devo usar o Java Keytool ou o comando Linux (como o comando openssl).

obrigado

nético
fonte

Respostas:

196
# Copy the certificate into the directory Java_home\Jre\Lib\Security
# Change your directory to Java_home\Jre\Lib\Security>
# Import the certificate to a trust store.

keytool -import -alias ca -file somecert.cer -keystore cacerts -storepass changeit [Return]

Trust this certificate: [Yes]

changeit é a senha do truststore padrão

Strelok
fonte
qualquer um sabe como fazer no openssl
Balamurugan
8
Este comando permite que você baixe o certificado para um arquivo namend certfile.txt: openssl s_client -connect HOSTNAME: PORTNUM 2> & 1 | sed -ne '/ -BEGIN CERTIFICATE - /, / - END CERTIFICATE- / p'> certfile.txt --- Em seguida, use o keytool para importá-lo em sua loja confiável
Christian Achilli 09/09/11
2
Você pode baixar o certificado de qualquer site protegido por SSL em seu navegador. No FireFox, basta clicar duas vezes no símbolo de cadeado no campo de endereço URL.
BetaRide
se você tiver o arquivo "jssecacerts", use "-keystore jssecacerts". "cacerts" é ignorado
kommradHomer
23

Em vez de usar sedpara filtrar o certificado, você também pode canalizar a openssl s_clientsaída openssl x509 -out certfile.txt, por exemplo:

echo "" | openssl s_client -connect my.server.com:443 -showcerts 2>/dev/null | openssl x509 -out certfile.txt
jbuhacoff
fonte
Essa resposta pretendia melhorar o comentário de Christian sobre a resposta aceita sobre o download do certificado. Provavelmente deveria ter sido um comentário.
jbuhacoff
8

A maneira como você importa um arquivo .cer para o armazenamento confiável é a mesma que importaria um arquivo .crt de, digamos, uma exportação do Firefox.

Você não precisa colocar um alias e a senha do keystore, basta digitar:

keytool -v -import -file somefile.crt  -alias somecrt -keystore my-cacerts

De preferência, use o arquivo cacerts que já está em sua instalação Java (jre \ lib \ security \ cacerts), pois ele contém certificados "populares" seguros.

Atualização sobre as diferenças de cer e crt (só para esclarecer) De acordo com Apache com SSL - Como converter CER para certificados CRT? e o usuário @Spawnrider

CER é um certificado X.509 em formato binário, codificado por DER.
CRT é um certificado X.509 binário, encapsulado em codificação de texto (base 64).
Não é a mesma codificação.

Andreas Panagiotidis
fonte
1
Tudo isso significa que você exportou o arquivo com um nome ligeiramente diferente. Isso não muda o arquivo, a pergunta ou a resposta. É aconselhável especificar um alias: caso contrário, você corre o risco de sobrescrever uma importação anterior.
Marquês de Lorne,
.Crt e .cer têm o mesmo formato? A extensão não desempenha nenhuma função nos certificados? Bom ponto sobre o alias.
Andreas Panagiotidis
1
Eu respondo à minha pergunta: Sim, crt e cer têm o mesmo formato. Mesma coisa. Você pode importar ambos no armazenamento confiável.
Andreas Panagiotidis