Configurando Ambiente de Produção no JBoss AS 7.1.3 (JBoss EAP 6.0.1) – Parte 4
E ai galera blz?
Continuando os posts:
- https://jbossdivers.wordpress.com/2012/10/19/configurando-ambiente-de-producao-no-jboss-as-7-1-2-jboss-eap-6-parte-1/
- https://jbossdivers.wordpress.com/2012/12/02/configurando-ambiente-de-producao-no-jboss-as-7-1-2-jboss-eap-6-parte-2/
- https://jbossdivers.wordpress.com/2013/03/24/configurando-ambiente-de-producao-no-jboss-as-7-1-3-jboss-eap-6-0-1-parte-3/
Anteriormente nós configuramos um balanceador de carga ( Apache + Mod Cluster ) , um Domain Controller e dois Host Controllers com uma instância cada. Ativamos também os recursos de cluster.
Hoje vamos aprender como encriptar o tráfego entre o Cliente<— —> Balancer <— —> Instâncias JBoss utilizando SSL.
Atualmente nós temos o seguinte cenário:
O dados estão trafegando sobre HTTP sem nenhuma criptografia podendo ser interceptado facilmente.
Então a primeira coisa a ser feita é utilizar SSL entre Cliente <—- —-> Balancer:
Antes de tudo quero deixar claro que vai ocorrer perda de performance já que o tráfego será encriptado.
Vamos gerar os certificado para ser utilizado no Apache Web Server que é o nosso Balancer. Pelo fato de utilizar o SSL/HTTPS devemos instalar o Mod SSL. Para isso, execute :
yum install mod_ssl
Vamos utilizar o openssl para geração dos certificados. Instale os pacotes necessários:
yum install openssl ca-certificates
Para melhor organização crie um diretório dentro de /etc/ssl com o nome de server-certs:
mkdir /etc/ssl/server-certs
O primeiro passo é gerar uma chave privada. Navegue até o diretório /etc/ssl/server-certs e execute:
openssl genrsa -des3 -out my-server.key 2048
A chave gerada está encriptada e protegida por uma senha ou seja se nós utilizarmos essa chave no Apache, toda vez que reiniciarmos o serviço essa senha será solicitada causando alguns transtornos. Para solucionarmos essa questão podemos gerar uma chave “desprotegida” baseada na chave privada my-server.key que não irá solicitar qualquer tipo de senha.
Execute comando abaixo para que a chave seja gerada:
openssl rsa -in my-server.key -out my-server.key.public
Tenha muito cuidado com a chave privada my-server.key, guarde-a em um local seguro e que seja acessível somente pelo root.
O próximo passo é gerar o Certificate Signing Request. Execute o comando abaixo:
openssl req -new -key my-server.key -out my-server.csr
O arquivo my-server.crt deveria ser enviado para a autoridade certificadora, que devolveria o certificado assinado. Neste caso, vamos utilizá-lo para criar um certificado auto assinado válido por 365 dias. Para isso execute:
openssl x509 -req -days 365 -in my-server.csr -signkey my-server.key -out my-server.cer
A criação dos certificados está concluída. Foram gerado os seguintes arquivos:
my-server.key – Chave privada.
my-server.key.public – Chave sem password.
my-server.csr – Pedido de assinatura do certificado.
my-server.cer – Certificado auto assinado.
Edite o arquivo vim /etc/httpd/conf.d/mod_cluster.conf e deixe-o como abaixo:
<VirtualHost 192.168.0.141:443> SSLEngine on SSLCipherSuite AES128-SHA:ALL:!ADH:!LOW:!MD5:!SSLV2:!NULL SSLVerifyDepth 10 SSLCertificateFile /etc/ssl/server-certs/my-server.cer SSLCertificateKeyFile /etc/ssl/server-certs/my-server.key.public <Directory /> Order deny,allow Allow from all </Directory> KeepAliveTimeout 60 ManagerBalancerName mycluster MaxKeepAliveRequests 0 ServerAdvertise On EnableMCPMReceive On </VirtualHost> <Location /mod_cluster-manager> SetHandler mod_cluster-manager Order deny,allow Allow from all </Location>
Reinicie o Apache e acesse por exemplo https://192.168.0.140/cluster e observe que agora os dados já trafegam encriptados. Para verificar se os dados realmente estão encriptados utilize o Wireshark.
Essa foi a parte final. Você pode ter sentido falta de muitos outros tópicos como configuração de datasource, tuning e algumas outras coisas mas a ideia dessa série foi configurar a infra para um ambiente JBoss moderno.
Nas próximas semanas estarei publicando novos posts relacionados a tuning.
Obrigado e Abraços 🙂