mar 19

Adicionando um certificado e uma chave em um keystore para configurar HTTPS no JBOSS

Estava eu tentando configurar o ssl no JBOSS 7.1 Community para utilizar meu certificado obtido no StartSSL e me deparei com o seguinte problema : 2 Arquivos um com extensão .crt e outro com extensão .key . Quando você olha os tutoriais de como configurar o ssl no jboss todos vão ensinar a criar um certificado fake e colocar no keystore, mas o que eu precisava era adicionar uma certificado de verdade.

Depois de algum tempo procurando eu encontrei a solução, são necessários 2 passos que é a transformação dos 2 arquivos .crt e .key em um arquivo do tipo pkcs12 que tem a extensão .p12 , e em seguida você deve importar esse certificado criado para um keystore java qualquer que você tenha.

Você precisará de 2 ferramentas: o OpenSSL , nativo no linux e para windows você acha aqui  e o Keytool do próprio java , basta ter alguma versão do java instalado para usá-lo, aqui tem uma referência legal dos principais comandos.

Agora vamos aos comandos necessários

Comando 1:

openssl pkcs12 -export -name [nome-do-certificado] -in [certificado.crt]  -inkey [chave-certificado.key]  -out keystore
.p12

Comando 2:

 keytool  -importkeystore -destkeystore [keystore-java-criado.jks]-srck
eystore keystore.p12 -srcstoretype pkcs12 -alias [alias-desejado]

E pronto, agora você poderá configurar um connector do jboss para utilizar ssl, utilizando seu certificado digital e poder utilizar https em suas aplicações.

<subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" native="false"> 

  <connector name="https" scheme="https" protocol="HTTP/1.1" socket-binding="https" enable-lookups="false" secure="true">

    <ssl name="foo-ssl" password="secret" protocol="TLSv1" key-alias="[alias-desejado]" certificate-key-file="[keystore-java-criado]" />

  </connector>

</subsystem>

E é isso!