Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Informações
titleNota:

Esta página foi revisada para considerar as configurações de server do TOTVS Fluig Plataforma a partir da atualização 1.6.

Índice


Índice
maxLevel4
outlinetrue
exclude.*ndice
stylenone

...

O objetivo deste guia é descrever os procedimentos para a configuração de um servidor de proxy reverso em uma instalação da utilizando Apache na plataforma.

Dica
titleDicas
  • Após a configuração do proxy reverso, não esqueça de alterar a URL de acesso ao portal nas Configurações do sistema da plataforma. Clique aqui e saiba como fazer.
  • Clique aqui para ver o passo a passo da a documentação do próprio fornecedor sobre a configuração de proxy reverso utilizando Apache no Windows.
Nota
titleImportante!

Salientamos que, ao utilizar um proxy reverso, uma prática de segurança recomendada para a plataforma é não expor o servidor de aplicação diretamente na Internet.

Clique aqui e veja outras boas práticas de segurança recomendadas para o seu ambiente.

Configuração de proxy reverso / DMZ

Um proxy reverso é um servidor que repassa o tráfego de rede recebido para um ou mais servidores. Em uma instalação da plataforma este tipo de servidor é usado para habilitar uma topologia de arquitetura chamada DMZ.

A implementação da DMZ na plataforma é realizada com o uso do Apache™ HTTP Server, que é um servidor Web de código livre, desenvolvido e mantido pela Apache Software Foundation.

A figura a seguir apresenta as topologias DMZ + SSL suportadas pela plataforma TOTVS Fluig.

Informações
titleNota:

Destacamos que a topologia considerada ideal e recomendada é a número 2: Apache (DMZ + SSL) → Fluig.

Image Removed

Nota
titleImportante!

Não é possível utilizar as notificações em tempo real quando utilizado proxy reverso com HTTPS.


Pré-requisitos

...

  • Apache™ versão 2.4. O instalador e a documentação oficial do Apache™ podem ser encontrados em http://httpd.apache.org/.

...

  • Para a porta do realtime (7777) no Apache é necessário habilitar o modulo módulo SSL em todos os vhosts que utilizarem o realtime  realtime   SSLEngine On e SSLProxyEngine On.

...

Configuração do Apache (sem SSL)

...

101. Acesse a pasta /etc/httpd/conf.d.

Informações
titleNota:

O caminho da pasta pode variar, esse caminho do exemplo é de uma instalação Linux CentOS.

202. Crie um arquivo de configuração para a plataforma (chamado fluig.conf, por exemplo), com o seguinte conteúdo:

...

Bloco de código
languagexml
<VirtualHost *:21>
    ServerName <Nome externo do servidor>
    ProxyPreserveHost On
    ProxyPass / ftp://<IP do servidor Fluig>/
    ProxyPassReverse / ftp://<IP do servidor Fluig>:21/
</VirtualHost>
Informações
titleLegenda

<Nome externo do servidor>: nome que aparecerá na URL do navegador, por exemplo, http://meuservidor.com.br.

<IP do servidor Fluig>: endereço IP interno do servidor onde o Fluig está rodando, por exemplo, 10.10.2.35.

...

Informações
titleLegenda

<Nome externo do servidor>: nome que aparecerá na URL do navegador, por exemplo, http://meuservidor.com.br.

<diretorio-certificado>: diretório e nome do arquivo do certificado de domínio enviado pela entidade certificadora, por exemplo: /etc/httpd/ssl/cert-dominio.crt

<diretorio-chave-privada>: diretório e nome do arquivo da chave privada, enviada pela entidade certificadora, por exemplo: /etc/httpd/ssl/chave-privada.key

<diretorio-cadeia-certificados>: diretório e nome do arquivo que contém a cadeia de certificados, por exemplo: /etc/httpd/ssl/cert-cadeia-certificados.pem

Informações
titleNota:

O caminho da pasta pode variar, esse caminho do exemplo é de uma instalação Linux CentOS.

DICA: O arquivo referente a à cadeia de certificados pode ser criado concatenando os certificados de domínio, intermediários e raiz. No Linux, isto pode ser feito com o comando abaixo:

Bloco de código
languagebash
cat cert-dominio.crt cert-intermediario.crt cert-raiz.crt > cert-cadeia-certificados.pem

OBS: Os certificados intermediários e raiz normalmente podem ser encontrados para download no site da entidade certificadora que você escolheu.

<IP do servidor fluig>: endereço IP interno do servidor onde o Fluig está rodando, por exemplo, 10.10.2.35.

...

Essa configuração deve ser realizada para garantir que a requisição chega ao conector HTTP com o mesmo protocolo a partir do qual a requisição foi originada.

1, 01. Edite o arquivo domain.xml localizado no diretório do servidor de aplicação [diretório_instalação]/appserver/domain/configuration/.

202. Localize o seguinte código:

Bloco de código
languagexml
themeEclipse
titledomain.xml
<subsystem xmlns="urn:jboss:domain:undertow:3.1">
	<buffer-cache name="default"/>
	<server name="default-server">
		<http-listener max-post-size="1073741824" name="default" socket-binding="http"/> <!-- Alterar esta linha -->
		<host alias="localhost" name="default-host"><single-sign-on path="/"/><filter-ref name="gzipFilter" predicate="path-suffix['.css'] or path-suffix['.js']"/></host>
    </server>
	<servlet-container name="default" stack-trace-on-error="local-only">
 		<jsp-config/>
		<websockets/>
	</servlet-container>
	<filters><gzip name="gzipFilter"/></filters>
</subsystem>

303. Na tag http-listener inclua o atributo proxy-address-forwarding com valor true, conforme mostrado abaixo:

...

Configuração do Apache (SSL) + Fluig (SSL)

...

101. Acesse a pasta /etc/httpd/conf.d.

Informações
titleNota:

O caminho da pasta pode variar, esse caminho do exemplo é de uma instalação Linux CentOS.

202. Crie um arquivo de configuração para a plataforma (chamado fluig.conf, por exemplo), com o seguinte conteúdo, caso seja utilizado HTTPS também no lado do Fluig:

Bloco de código
languagexml
Header set Access-Control-Allow-Origin: "https://<Nome externo do servidor>"
Header set Access-Control-Allow-Headers: "Content-Type, X-Requested-With, accept-version"
Header set Access-Control-Allow-Methods: "GET, PUT, OPTIONS, DELETE, POST"
Header Set Access-Control-Request-Method: "GET, PUT, OPTIONS, DELETE, POST"


<VirtualHost *:443>
 ServerName <Nome externo do servidor>
 RequestHeader set X-Forwarded-Host <Nome externo do servidor>:443
 RequestHeader set X-Forwarded-Proto https
 SSLProxyEngine On
 SSLEngine On
 SSLCertificateFile <diretorio-certificado>.crt
 SSLCertificateKeyFile <diretorio-chave-privada>.key
 SSLCertificateChainFile <diretorio-cadeia-certificados>.pem
 ProxyPreserveHost On
 ProxyPass / https://<IP do servidor Fluig>:<Porta do servidor Fluig>/
 ProxyPassReverse / https://<Nome externo do servidor>/
</VirtualHost>
 
<VirtualHost *:21>
 ServerName <Nome externo do servidor>
 ProxyPreserveHost On
 ProxyPass / ftp://<IP do servidor Fluig>/
 ProxyPassReverse / ftp://<IP do servidor Fluig>:21/
</VirtualHost>


Ocultar informações no cabeçalho HTTP

...

Para prevenir vulnerabilidades, é importante que as informações não fiquem expostas no cabeçalho HTTP. Clique aqui e saiba como ocultá-las.