O certificado do Java cacouts out é SHA1 existe um com SHA2

0

Java / JDK / JRE, eles têm um cacerts de keystore na pasta lib \ Security, conforme mostrado abaixo

OJavavemcomcercade93certificadosprontosparaouso,Estesnãosãoauto-assinados,sãofornecidospeloprópriojava

Estes certificados são Certificados SHA1

Antecedentes

O aplicativo que usamos depende do java e da nossa empresa dizendo que eles estão se afastando do SHA1 e querem alterar esses SHA1 para SHA2.

Perguntas

  1. Existe uma versão / tipo de java que usa SHA2 para certificados fora da caixa?
  2. É possível substituir certificados de caixa com SHA2?
por SeanClt 23.03.2016 / 16:50

2 respostas

1

Esta é uma resposta tardia, mas há um equívoco importante na questão que deve ser esclarecido para futuros leitores. A saída de keytool pode ser enganosa: ela mostra uma impressão digital SHA1 para todos os certificados, se eles usam SHA1 ou SHA2 assinando função hash (que é o que você está procurando). A impressão digital SHA1 é simplesmente uma ID exclusiva do certificado.

Para encontrar certificados SHA2 em um pacote, você não pode confiar na keytool -list. Você precisa extrair todos os certificados com keytool -exportcert e, em seguida, verificar os detalhes de cada um com keytool -printcert: os certificados SHA2 terão essa linha na saída:

Signature algorithm name: SHA256withRSA

Os certificados SHA2 CA fazem parte do pacote Java cacerts padrão desde o JRE 1.6.14 (consulte o certificado ttelesecglobalrootclass3ca), se não antes.

    
por 12.10.2017 / 19:46
0

À medida que os provedores de CA atualizam seus certificados para o SHA-2, eles enviam os novos certificados para inclusão nos vários produtos que usam SSL, como navegadores e Java.

Obviamente, as versões mais antigas de um determinado produto não terão certificados mais recentes (não há mecanismo para atualizá-los automaticamente).

Se o provedor não enviar um novo certificado, ele não será incluído no Java e você terá que adicionar manualmente certificados mais novos ao repositório de certificados confiáveis do Java.

Então, se você receber um erro como:

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

... então você provavelmente não tem o certificado raiz da CA correto e precisará baixar e instalar manualmente os certificados no keystore de certificado confiável Java. Aqui está um método para fazer isso: link

    
por 23.12.2016 / 17:24