Histórico da Página
Configurando um proxy reverso com apache 2.4 + Linux
Guia passo a passo
- Esta atividade tem como pré-requisito um Sistema operacional linux com apache 2.4
- Instale o apache no seu servidor com os seguintes módulos: mod_proxy, mod_xml2enc, mod_proxy_html, mod_unique_id, mod_ssl
- Caso deseje que o apache funcione como um WAF, instale o modulo mod_security2
Crie a pasta root do seu site com o comando abaixo:
Bloco de código language bash mkdir /var/www/nomeExterno.com.br
Adicione no arquivo de configurações do apache /etc/httpd/conf/httpd.conf (pode mudar dependendo da distro) o conteúdo abaixo:
Bloco de código <VirtualHost nomeExterno.com.br:443> ServerName nomeExterno.com.br SetEnv nokeepalive ssl-unclean-shutdown ErrorLog "logs/nomeExterno.com.br-error_log" CustomLog "logs/nomeExterno.com.br-access_log" combined DocumentRoot /var/www/nomeExterno.com.br SSLEngine on SSLCertificateFile /pasta/unimed.der SSLCertificateKeyFile /pasta/certificadoUnimed.rsa SSLCACertificateFile /pasta/ca.der SSLVerifyClient require SSLVerifyDepth 1 SSLProxyEngine On SSLProxyMachineCertificateFile /pasta/certificadoUnimed.pem SSLProxyCACertificateFile /pasta/ca.der SSLProxyVerify require SSLProxyVerifyDepth 1 SSLProxyCheckPeerName off SSLProxyCheckPeerCN off SSLProxyCipherSuite kRSA:aDH:AES:SHA1:HIGH:!aNULL:!eNULL Redirect /htz-foundation /htz-foundation/ ProxyPass /htz-foundation/ https://nomeInterno.com.br/htz-foundation/ ProxyPassReverse /htz-foundation/ https://nomeInterno.com.br/htz-foundation/ <Directory /var/www/nomeExterno.com.br> Options -Indexes AllowOverride None </Directory> <Location /htz-foundation> Order allow,deny allow from all </Location> </VirtualHost>
Edite as configurações demonstradas acima de acordo com os nomes externos e internos definidos pela sua organização de cada serviço, substituindo os nomes “nomeExterno.com.br” e “nomeInterno.com.br”.
Exporte os certificados com os seguintes comandos:
Bloco de código # Certificado da Unimed para o SSL keytool -importkeystore -srckeystore certificado.keystore -destkeystore certificadoUnimed.p12 -srcstoretype jks -deststoretype pkcs12 -alias "alias do certificado da unimed" openssl pkcs12 -in certificadoUnimed.p12 -out certificadoUnimed.pfx openssl x509 -outform der -in unimed.pfx -out unimed.der # Ca keytool -importkeystore -srckeystore certificado.keystore -destkeystore Ca.p12 -srcstoretype jks -deststoretype pkcs12 -alias "alias do ca do certificado" openssl pkcs12 -in ca.p12 -out ca.pfx openssl x509 -outform der -in ca.pfx -out ca.der # Certificado da Unimed para SSLProxy openssl pkcs12 -in certificadoUnimed.p12 -out certificadoUnimed.key -nocerts -nodes openssl rsa -in certificadoUnimed.key -out certificadoUnimed.rsa openssl pkcs12 -in certificadoUnimed.p12 -out certificadoUnimed.pem -clcerts -nokeys cat certificadoUnimed.rsa >> certificadoUnimed.pem # Excluindo os arquivos desnecessarios rm certificadoUnimed.p12 certificadoUnimed.pfx ca.p12 ca.pfx certificadoUnimed.key
- Reinicie o apache e teste o tráfego do PTU da Unimed Brasil > Unimed Foundation.
Considerações
- Com o mod_security2 habilitado, existe a possibilidade de bloqueios (código 403), onde cada acesso deve ser analisado e tratado de acordo com a necessidade de cada organização.
- Caso possua, confira suas configurações de firewall e IDS para não bloquear suas aplicações de forma indevida.
- Os módulos citados são encontrados na página oficial do apache https://httpd.apache.org/docs/2.4/mod/
Artigos relacionados
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas