Base de conhecimento
Encontre respostas para suas dúvidas em quatro fontes de conhecimento diferentes ao mesmo tempo, simplificando o processo de pesquisa.

Framework - Linha Datasul - FRW - Configuração do Smart View para acesso externo via HTTPS utilizando Proxy Reverso Apache

time.png Tempo aproximado para leitura: 00:08:00 min

Dúvida
Como configurar o TOTVS Smart View para acesso externo através de HTTPS utilizando o Apache HTTP Server como proxy reverso, mantendo o serviço do Smart View disponível internamente através de HTTP?

Ambiente
Framework - Framework (Linha Datasul) - Smart View (SVW) - Versão 12

Solução
Para disponibilizar o Smart View externamente utilizando HTTPS, pode ser configurado um VirtualHost exclusivo no Apache, responsável por receber as requisições HTTPS e encaminhá-las para a porta interna do Smart View.

Exemplo da arquitetura:

Usuário / Navegador
       |
       | HTTPS :443
       v
https://smartview.empresa.com.br
       |
       | Apache Reverse Proxy
       v
http://servidor-smartview:7017
       |
       v
TOTVS Smart View
       |
       | HTTPS
       v
TOTVS Datasul

A configuração deve ser adaptada de acordo com os endereços, certificados e portas utilizados no ambiente.

1. Configurar o DNS e o certificado HTTPS
Crie um endereço DNS para acesso externo ao Smart View. Exemplo:

smartview.empresa.com.br

O certificado configurado no Apache deverá ser válido para o hostname utilizado. Exemplo:

https://smartview.empresa.com.br

Valide também se a cadeia certificadora apresentada pelo servidor está completa.

2. Criar o VirtualHost do Smart View no Apache
No arquivo de configuração do Apache, adicione um VirtualHost exclusivo para o Smart View. Exemplo:

<VirtualHost *:443>
   ServerName smartview.empresa.com.br
   SSLEngine On
   SSLCertificateFile /etc/httpd/ssl/smartview.empresa.com.br.crt
   SSLCertificateKeyFile /etc/httpd/ssl/smartview.empresa.com.br.key
   ProxyRequests Off
   ProxyPreserveHost On
   RequestHeader set X-Forwarded-Proto "https"
   RequestHeader set X-Forwarded-Port "443"
   RequestHeader set X-Forwarded-Host "smartview.empresa.com.br"
   ProxyPass        / http://servidor-smartview:7017/
   ProxyPassReverse / http://servidor-smartview:7017/
   ErrorLog  logs/smartview_error.log
   CustomLog logs/smartview_access.log combined
</VirtualHost>

O ProxyPass encaminha as requisições recebidas pelo Apache para o serviço interno do Smart View. O ProxyPassReverse permite ao Apache tratar os redirects retornados pelo backend, evitando que o navegador passe a utilizar diretamente o hostname ou a porta interna do Smart View.

O parâmetro: ProxyPreserveHost On mantém o header Host original recebido pelo Apache. Dessa forma, o Smart View continua recebendo como referência o endereço público:

smartview.empresa.com.br

Em vez de utilizar somente o endereço interno configurado no ProxyPass. Não é necessário alterar globalmente essa propriedade em outros VirtualHost existentes no Apache. Os headers abaixo também devem ser configurados:

RequestHeader set X-Forwarded-Proto "https"
RequestHeader set X-Forwarded-Port "443"
RequestHeader set X-Forwarded-Host "smartview.empresa.com.br"

Eles permitem informar ao backend que a requisição original foi realizada utilizando HTTPS, porta 443 e o hostname público do Smart View, mesmo que a comunicação entre o Apache e o Smart View seja realizada internamente através de HTTP.

3. Validar a configuração do Apache
Antes de reiniciar o serviço, valide a sintaxe da configuração. Em ambientes Linux, utilize conforme a instalação:

apachectl configtest

ou:

httpd -t

O resultado esperado é:

Syntax OK

Valide também se estão carregados os módulos necessários, principalmente:

mod_ssl
mod_proxy
mod_proxy_http
mod_headers

Exemplo:

apachectl -M | egrep 'ssl|proxy|proxy_http|headers'

Após a validação, reinicie ou efetue o reload do Apache conforme o procedimento utilizado no ambiente.

4. Configurar a URL externa do Smart View no Datasul
No Datasul, acesse Propriedades do Sistema, Propriedades Integrações TOTVS, Smart View. Informe no campo de URL do Smart View o endereço público configurado no Apache. Exemplo:

https://smartview.empresa.com.br

Quando o acesso ao Smart View deve ocorrer através do endereço externo, não utilize nesse campo o endereço interno:

http://servidor-smartview:7017

O objetivo é que o Datasul abra os relatórios utilizando o endereço externo publicado pelo proxy.

5. Validar o endereço utilizado pelo Smart View para comunicação com o Datasul
Além do Datasul acessar o Smart View, o Smart View também precisa se comunicar com o ERP para autenticação e consulta dos dados utilizados nos relatórios.

Valide o endpoint de descoberta configurado para o Datasul. Exemplo:

https://datasul.empresa.com.br/totvs-login/sv/.well-known

Valide também o Conector do tipo Provedor Nativo configurado no Smart View. Exemplo:

https://datasul.empresa.com.br/api/trep/v1/provider/.well-known/treports/connector/

Quando o Datasul também estiver publicado externamente através de proxy ou balanceador, utilize o endereço compatível com essa publicação e com as demais configurações utilizadas na integração.

6. Validar a configuração JWT do Datasul
Caso o Datasul esteja publicado externamente através de outro hostname, proxy ou balanceador, valide também as propriedades JWT utilizadas na integração. No Datasul, acesse Propriedades do Sistema, Propriedades JWT, Datasul. O endereço utilizado pelo Smart View para comunicação com o Datasul deve estar coerente com a audiência utilizada pelo token JWT.

Valide principalmente os campos de identificação do servidor disponíveis na versão utilizada. Após realizar alterações nas propriedades relacionadas ao JWT, efetue um novo login no Datasul antes de repetir o teste.

Logout do Datasul
       ↓
Novo login
       ↓
Novo teste do relatório

Dessa forma, um novo token será gerado utilizando as propriedades atualizadas.

7. Validar a confiança dos certificados
A utilização de HTTPS deve ser validada em todas as comunicações existentes no cenário.

Exemplo:
Navegador
  ↓
Apache / Smart View
Smart View
  ↓
Datasul
OpenEdge / Datasul
  ↓
Smart View

O fato de o certificado ser reconhecido pelo navegador não garante que ele também seja confiável para Java, OpenEdge ou outros runtimes utilizados pela integração. Quando existirem chamadas HTTPS originadas pelo OpenEdge, valide se a cadeia certificadora necessária está disponível no repositório de certificados utilizado pela respectiva instalação do Progress OpenEdge.

Quando a chamada HTTPS for originada por um componente Java, valide o truststore utilizado pela JVM correspondente. Não desabilite a validação SSL/TLS como solução definitiva para problemas relacionados a certificado.

8. Validar o funcionamento
Após concluir a configuração, acesse diretamente:

https://smartview.empresa.com.br

Confirme que o endereço permanece utilizando HTTPS e que não ocorre redirecionamento para hostname ou porta interna. Em seguida, acesse um relatório Smart View através do Datasul.

A nova guia deverá utilizar:
https://smartview.empresa.com.br/...
e não:
http://servidor-smartview:7017/...

Execute também um relatório que consulte informações do ERP e confirme que os dados são retornados corretamente. Quando aplicável, realize a geração do relatório em PDF e valide se o arquivo é criado corretamente e possui conteúdo.

Importante
Antes de alterar a configuração do Apache, realize backup do arquivo de configuração atual. Recomenda-se criar um VirtualHost específico para o Smart View, evitando alterações desnecessárias em publicações já existentes no mesmo Apache. Não exponha diretamente a porta interna do Smart View para acesso externo quando ela puder permanecer protegida pela rede interna. Mantenha:

ProxyRequests Off

Para não habilitar o Apache como forward proxy. Não altere globalmente:

ProxyPreserveHost

Caso existam outros Sistemas utilizando o mesmo servidor Apache. A configuração apresentada neste documento deve permanecer restrita ao VirtualHost destinado ao Smart View. Antes de reiniciar o Apache, sempre valide a configuração:

apachectl configtest

ou:

httpd -t

Caso seja identificado erro de sintaxe, corrija a configuração ou restaure o arquivo anterior antes de reiniciar o serviço.

Esse artigo foi útil?
Usuários que acharam isso útil: 0 de 0

0 Comentários

Por favor, entre para comentar.
X Fechar

Olá ,

Há pendência referente a um de seus produtos contratados para a empresa ().

Entre em contato com o Centro de Serviços TOTVS para tratativa.

Ligue! 4003-0015 opção 4 e 9 ou registre uma solicitação para CST – Cobrança – Verificação de pendências financeiras . clique aqui.

TOTVS

X Fechar

Olá ,

Seu contato não está cadastrado no Portal do Cliente como um perfil autorizado a solicitar consultoria telefônica.

Por gentileza, acione o administrador do Portal de sua empresa para: (1)configurar o seu acesso ou (2)buscar um perfil autorizado para registro desse atendimento.

Em caso de dúvidas sobre a identificação do contato administrador do Portal, ligue (11) 4003-0015, opção 7 e, em seguida, opção 4 para buscar o suporte com o time de Assessoria ao Portal do Cliente. . clique aqui.

TOTVS

X Fechar

Olá ,

Para o atendimento de "Consultoria Telefônica" você deverá estar de acordo com o Faturamento.

TOTVS

X Fechar

Olá,

Algo inesperado ocorreu, e o usuario nao foi reconhecido ou você nao se encontra logado

Por favor realize um novo login

Em caso de dúvidas, entre em contato com o administrador do Portal de Clientes de sua empresa para verificação do seu usuário, ou Centro de Serviços TOTVS.

Ligue! 4003-0015 opção 4 e 9 ou registre uma solicitação para CST – Cadastros . clique aqui.

TOTVS

Chat _

Preencha os campos abaixo para iniciar o atendimento:

Chat _