Renovamos o certificado de um dos nossos servidores (apache httpd). Para uma interface de serviço da Web (para clientes móveis), precisamos do certificado também no tomcat, significa: armazenado em um armazenamento de chaves java. Já temos nosso certificado no armazenamento de chaves java, mas os certificados raiz ainda estão faltando.
Se listarmos os detalhes do certificado antigo de keystore, obteremos:
/> keytool -list -v -keystore 2012.jks -alias ourcertificate
Keystore-Kennwort eingeben:
Aliasname: ourcertificate
...
...
...
Zertifikatkettenlänge: 3 // certificate length: 3
Zertifikat[1]: // certificate[1]
...
...
...
Zertifikat[2]:
...
...
...
Zertifikat[3]:
...
...
...
Importante é que todos os certificados ca já fazem parte do alias "ourcertificate" do keystore.
Se listarmos os detalhes do novo certificado (do novo arquivo de armazenamento de chaves), obteremos:
/> keytool -list -v -keystore 2015.jks -alias ourcertificate
Keystore-Kennwort eingeben:
Aliasname: ourcertificate
...
...
...
Zertifikatkettenlänge: 1 // certificate length: 1
Zertifikat[1]: // certificate[1]
...
...
...
Os certificados ca estão faltando aqui. Para importar os certificados de CA que tentamos seguir o comando:
/> keytool -import -alias alpha -file gsalphasha2g2r1.der -keystore 2015.jks
Keystore-Kennwort eingeben:
...
...
...
Diesem Zertifikat vertrauen? [Nein]: Ja // trust this certificate? [No]: Yes
Zertifikat wurde Keystore hinzugefügt // certificate successfully added to keystroe
Mas isso adiciona um novo certificado confiável ao keystore (com um novo alias). Também adicionar a raiz ca certifiacte não ajuda. Se listarmos os detalhes do certificado da entrada "ourcertificate", ainda obteremos o tamanho do certificado 1. Também especificar "ourcertificate" ao importar os certificados ca não ajuda (recebemos um erro que as chaves públicas na resposta e keystore são não identicamente; "Keytool-Fehler: java.lang.Exception: Chaves públicas no Antwort e Keystore stimmen nicht überein" em alemão)
O que há de errado? Como podemos importar os certificados de ca para um armazenamento de chaves java para que os certificados ca sejam vinculados ao "nosso certificado"
EDITAR
Acho que também devo descrever como importamos o par de chave privada e certificado. Isso é um pouco difícil, porque o CSR foi feito com o openssl. Precisamos importar a chave privada e o certificado no arquivo keystore. Para fazer isso, usamos o seguinte arquivo de classe Java: link (a classe ImportKey). Nós sabemos que isso funciona. Mas pode haver um erro ao importar a chave e o certificado ...