Habilitando HTTPS no JBoss AS 7.1.2 ( JBoss EAP 6 )

Postado em

Olá amigos,

O post de hoje pode ser repetitivo ou muito simples para profissionais mais experientes,  mas acredito que seja de grande importância para quem esteja iniciando no mundo JBoss.

O primeiro passo é gerar os certificados. Existem duas opções: podemos utilizar a keytool que já vem com o JDK ou utilizar o OpenSSL.

Utilizando Keytool

Inicialmente vamos gerar o certificado. Eu presumo que você já tenha o JDK instalado. No terminal execute o comando abaixo:

  keytool -genkey -keystore jboss.keystore -storepass mypassword -keypass mypassword -keyalg RSA -validity 180 -alias  jbossdivers -dname "cn=Mauricio Magnani,o=Blog,c=BR"

Edite o arquivo $JBOSS_HOME/standalone/configuration/standalone.xml e no subsystem web adicione a seguinte configuração:

<subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" native="false">
  <connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/>
  <connector name="https" protocol="HTTP/1.1" scheme="https" socket-binding="https" secure="true">
    <ssl key-alias="jbossdivers" password="mypassword" certificate-key-file="/home/mmagnani/Development/jboss-eap/jboss-eap-6.0/jboss.keystore" cipher-suite="ALL" protocol="TLS"/>
  </connector>
  <virtual-server name="default-host" enable-welcome-root="true">
    <alias name="localhost"/>
    <alias name="example.com"/>
  </virtual-server>
</subsystem>

Se ocorrer o erro abaixo, verifique se a configuração está como  native=”true”.  Quando utilizamos os certificados gerados pela keytool a propriedade  native deve ser configurada como  native=”false”.

Caused by: LifecycleException:  Protocol handler initialization failed: java.lang.Exception: No Certificate file specified or invalid file format

Inicie o JBoss e acesse a url  https://localhost:8443/  e veja se o certificado está realmente funcionando.

Utilizando OpenSSL

Novamente vamos gerar os certificados. Execute os comandos abaixo:

 openssl genrsa -des3 -out https-rsa.pem 2048
 openssl req -new -key https-rsa.pem  -out https.csr
 openssl x509 -req -days 720 -in https.csr -signkey https-rsa.pem -out https-rsacert.pem

Altere o parâmetro native=”false” para native=”true” . Edite o arquivo $JBOSS_HOME/standalone/configuration/standalone.xml e no subsystem web adicione a seguinte configuração:

<subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" native="true">
  <connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/>
  <connector name="https" protocol="HTTP/1.1" scheme="https" socket-binding="https" secure="true">
    <ssl password="123456" certificate-key-file="/home/mmagnani/Development/jboss-eap/jboss-eap-6.0/https-rsa.pem" protocol="TLSv1" verify-client="false" certificate-file="/home/mmagnani/Development/jboss-eap/jboss-eap-6.0/https-rsacert.pem" keystore-type="PKCS12" truststore-type="PKCS12"/>
  </connector>
  <virtual-server name="default-host" enable-welcome-root="true">
    <alias name="localhost"/>
    <alias name="example.com"/>
  </virtual-server>
</subsystem>

Abra novamente a url https://localhost:8443/   e veja se o certificado está  funcionando.

Para mais informações sobre geração dos certificados e seus parâmetros consulte os links abaixo:

Espero que tenha ajudado.

Abraços

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s