Posso importar um certificado SSL que foi criado pela CA para meu keystore Java?

1

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?

    
por Joe7 16.07.2015 / 18:23

1 resposta

0

Eu fiz isso no passado usando um keystore PKCS12:

cat ca.pem sub.class1.server.ca.pem > chain.pem
openssl pkcs12 -export -inkey mydomain.key -certfile chain.pem \
      -out mydomain.p12 -in mydomain.pem -name mydomain

Depois disso, use-o diretamente, especificando o tipo de keystore como PKCS12 ou convertendo para JKS com keytool:

keytool -importkeystore -srckeystore mydomain.p12 \
      -srcstoretype PKCS12 -deststoretype JKS -destkeystore mydomain.jks
    
por 16.07.2015 / 20:29