Converter uma cadeia de certificados e uma chave em um Java Keystore para SSL em Puma / Java

Portanto, você tem um certificado assinado, um certificado intermediário e uma chave privada. Você deseja usar algum servidor baseado em Java com SSL, como Puma no JRuby. Você precisa de um arquivo de armazenamento de chaves e não tem ideia do que fazer, ou talvez alguma ideia, mas todos os documentos estão desatualizados e nenhum deles se encaixa no seu nicho. Não procure mais, aqui está um guia passo a passo.

Primeiro concatene o certificado intermediário e o seu certificado em um crtarquivo.

(cat intermediate.crt; echo; /etc/ssl/certs/ca-certificate.crt) >> allcacerts.crt

Observação : os crtarquivos geralmente não terminam em uma nova linha, portanto, é necessário adicionar uma nova linha entre o certificado intermediário e o certificado raiz.

Em seguida, importe o novo certificado mesclado em um keystore pkcs12.

openssl pkcs12 -export -chain -CAfile allcacerts.crt //
-in /etc/ssl/certs/ca-certificate.crt //
-inkey /etc/ssl/certs/ca-certificate.key //
-name domaincerts -out allcacerts.p12

Isso solicitará uma senha. Esta é a senha para o keystore pkcs12, que será usada novamente no próximo comando.

Finalmente, converta o pkcs12 em um keystore java.

keytool -importkeystore -srckeystore allcacerts.p12 //
-srcstoretype PKCS12 -destkeystore keystore.jks

Isso solicitará uma senha para o armazenamento de chaves Java e, em seguida, novamente para verificar. Depois disso, ele solicitará a senha do keystore pkcs12, que você definiu na etapa 2. Depois de concluir esta etapa, você tem um keystore Java que pode usar.

Por favor, verifique as referências para mais informações ou para dar o devido crédito.

Referências: