Estou tentando importar um certificado assinado por CA para um keystore Java. Todas as instruções que posso encontrar para isso me dizem para primeiro criar um keystore e uma solicitação de assinatura (CSR) usando o keytool Java, depois ter o CSR assinado pela CA e, em seguida, importar o certificado assinado de volta para o keystore.
Bem, estúpido, eu não li o bom manual e mandei a CA criar o certificado online para mim, em vez de fazer o upload do meu próprio CSR. Agora eu tenho:
-
certificado raiz
ca.pem
da CA
-
sub.class1.server.ca.pem
certificado intermediário da CA
-
mydomain.crt
assinado certificado para meu domínio, criado pela CA
-
mydomain.key
arquivo de chave privada para o meu certificado, criado pela CA
Eu tentei importar o certificado para meu armazenamento de chaves da seguinte forma:
keytool -import -trustcacerts -alias root -file ca.pem -keystore mykeystore.jks
keytool -import -trustcacerts -alias intermediate -file sub.class1.server.ca.pem -keystore mykeystore.jks
keytool -import -alias mydomain mydomain.crt -keystore mykeystore.jks
Portanto, o conteúdo do armazenamento de chaves agora é assim:
intermediate, Jul 16, 2015, trustedCertEntry,
Certificate fingerprint (SHA1): 0A:D3:...
root, Jul 16, 2015, trustedCertEntry,
Certificate fingerprint (SHA1): 3E:2B:...
mydomain, Jul 16, 2015, trustedCertEntry,
Certificate fingerprint (SHA1): 18:F2:...
selfsigned, Feb 4, 2015, PrivateKeyEntry,
Certificate fingerprint (SHA1): 2B:74:...
Infelizmente, o serviço que estou tentando proteger (um servidor JIRA) não pode ser acessado ao usar o alias "mydomain". Quando eu uso o alias “auto-assinado”, que é um certificado autoassinado que eu criei do keystore anteriormente, com todas as outras configurações sendo idênticas, o serviço pode ser alcançado muito bem (exceto para o aviso sobre o certificado auto-assinado, de curso); então eu acho que o problema é o certificado gerado pela CA.
Eu tentei concatenar os arquivos mydomain.crt e mydomain.key como sugerido neste thread sem sucesso:
Importação da cadeia de certificados do PEM e chave para o Java Keystore
Existe algo que eu possa estar fazendo errado? É possível importar um certificado criado por terceiros em um armazenamento de chaves Java existente? Ou eu preciso revogar esse certificado e passar pelo processo novamente com um CSR selfmade extraído do meu keystore?