Home

TOTVS | Plataformas e tecnologias

Árvore de páginas

Importante

Caro Cliente,

O TOTVS ECM 3.0 foi fundamentado na tecnologia de interface Flash, do qual a Adobe irá descontinuar seu suporte em 31/12/2020.

Recomendamos que nossos clientes avaliem a utilização do TOTVS Fluig Plataforma, que proporciona uma maior abrangência de recursos e importantes inovações tecnológicas. São inúmeras novidades não só em ECM e BPM que o Fluig entrega aos seus mais de 4 mil clientes, mas também conta com recursos de portais, social e identidade única.

Entre em contato com seu executivo de conta para saber mais detalhes desta oferta.

Índice


Objetivo

Este documento tem o objetivo de conduzir o leitor para configurar um ambiente de DMZ e/ou SSL para o TOTVS | ECM. A DMZ é a área de rede que permanece entre a rede interna de uma organização e uma rede externa, em geral a internet. Comumente, uma DMZ contém equipamentos apropriados para o acesso à internet, como servidores para web (HTTP).
A configuração de SSL permite a utilização de certificados digitais para garantir uma conexão segura através da Internet.


Pré-requisitos

O ambiente de DMZ para o TOTVS | ECM é baseado no servidor HTTP Apache™. O instalador e a documentação oficial do Apache™ podem ser encontrados em http://httpd.apache.org/.
ATENÇÃO: A versão do Apache™ HTTP Server deve ser igual a 2.2.15. Já foram reportados problemas com versões anteriores.


Cenários Homologados

A figura abaixo ilustra os cenários homologados para configuração do ECM com DMZ e/ou SSL, outras formas de configuração podem gerar comportamentos inesperados:


Procedimentos de Configuração de DMZ


O Apache™ HTTP Server deve ser instalado no servidor a ser exposto para acesso externo à rede da organização.
A configuração do Apache™ é realizada via arquivo de configuração. O arquivo de configuração encontra-se em APACHE_HOME/conf/httpd.conf.
O ambiente de DMZ é constituído da configuração de um Proxy com o Apache™ HTTP Server. As linhas abaixo devem ser acrescentadas no final do arquivo httpd.conf que acompanha a instalação padrão do Apache™, são elas:

# Properties for the Flex RTMP and RTMPT connection modules
AllowConnect 2038
ProxyRequests Off
LimitRequestBody 0
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
<VirtualHost *:80>
ProxyPass /webdesk http://<host>:<porta>/webdesk
ProxyPassReverse /webdesk http://<host>:<porta>/webdesk
ProxyPass /webdeskreport http:// <host>:<porta>/webdeskreport
ProxyPassReverse /webdeskreport
http:// <host>:<porta>/webdeskreport
ProxyPass /webdesk/services http:// <host>:<porta>/webdesk/services
ProxyPassReverse /webdesk/services
http:// <host>:<porta>/webdesk/services
ProxyPass /webdeskLM/xmlrpc http://<host>:<porta>/webdeskLM/xmlrpc
ProxyPassReverse /webdeskLM/xmlrpc http://<host>:<porta>/webdeskLM/xmlrpc
ProxyPass /webdeskLM/sessionsservlet http://<host>:<porta>/webdeskLM/sessionsservlet
ProxyPassReverse /webdeskLM/sessionsservlet http://<host>:<porta>/webdeskLM/sessionsservlet
ProxyPass /josso http://<host>:<porta>/josso
ProxyPassReverse /josso http://<host>:<porta>/josso
ProxyPass /mobile http://<host>:<porta>/mobile
ProxyPassReverse /mobile http://<host>:<porta>/mobile
ProxyPass / http://<host>:<porta>
ProxyPassReverse / http://<host>:<porta>
</VirtualHost>
<VirtualHost *:2038>
ProxyPass / http://<host>:<portaRTMPT>/
ProxyPassReverse / http://<host>:<portaRTMPT>/
</VirtualHost>

Onde:

  • host: é o nome do servidor onde o TOTVS | ECM está hospedado;
  • porta: é a porta do servidor onde o TOTVS | ECM está hospedado.

  • portaRTMPT: é a porta do canal RTMPT onde o TOTVS | ECM está hospedado, configurada no arquivo wdk-service.xml.


É recomendado utilizar o nome ou alias do servidor ao invés do IP, alguns navegadores entre eles o Internet Explorer possuem um controle de segurança não permitindo “Cross-Domain”, ou seja, mudança de host, sendo assim, se for definido o IP do servidor, em determinado momento poderá acontecer uma mudança de endereço, causando erro de sessão expirada, ocorre com mais frequência na renderização de relatórios.

Para suportar esta configuração é necessário habilitar três módulos que acompanham a distribuição padrão do Apache™, são eles:

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_http_module modules/mod_proxy_http.so

Para habilitar estes módulos retire o character “#” que antecede cada uma das linhas de configuração.
Caso estes módulos não estejam habilitados em sua configuração mensagens do tipo “No protocol handler was valid for the URL” serão apresentadas no arquivo de log do Apache™ em APACHE_HOME/logs/error.log.
Para suportar o TOTVS | ECM em todos os navegadores, altere o MIME type padrão para: DefaultType text/html.
Nas novas versões do Apache (superior a 2.2.15), deve ser alterado o arquivo mime.types, localizado no mesmo diretório do arquivo httpd.conf. Abrindo o arquivo localize a linha que possua o seguinte texto:


application/xhtml+xml


E altere o conteúdo desta linha inserido o carácter “#” no início da linha. Permanecendo da seguinte forma:


#application/xhtml+xml


Após salve o arquivo e reinicie o serviço Apache.


Atenção: Sem efetuar esta alteração os efeitos visuais (CSS) não serão aplicados e algumas funções podem apresentar problemas.
Algumas configurações devem ser realizadas no TOTVS | ECM para poder operar corretamente em um ambiente DMZ. No cadastro da empresa, que é acessado pelo usuário administrador do SaaS (wdkAdmin), a flag “Ambiente DMZ” deve ser marcada, e o campo “Porta WEB” deverá ser preenchido com o número da porta onde está carregado o Apache™ Server. Ao marcar a flag de DMZ, o campo “Porta padrão HTTP”

será habilitado, e nele deve ser informada a porta do servidor de aplicação do produto (porta do JBoss®).


O firewall deve permitir o acesso à porta do servidor onde o TOTVS | ECM está hospedado. Também é necessário permitir acesso a porta 2038 do servidor onde o TOTVS | ECM está hospedado. Esta porta é necessária para o funcionamento do serviço de mensagens do produto.


A técnica de DMZ é viabilizada pelo tunelamento do protocolo RTMP da Adobe® via HTTP. Desta maneira é possível redirecionar as requisições do TOTVS | ECM para o servidor onde o produto está hospedado sem maiores riscos à segurança da rede da organização. Ataques as portas redirecionadas não serão bem sucedidos haja vista resultarem em respostas em formatos que serão desconhecidos aos responsáveis pelo ataque.


Web Services em ambiente de DMZ


Caso seja necessário acessar os Web Services a partir do ambiente de DMZ é necessário configurar o servidor de aplicação do produto, para que, ao disponibilizar os arquivos WSDL seja utilizado como endereço o host o servidor a ser exposto para acesso externo à rede da organização.

Para realizar esta configuração, edite o arquivo jboss-beans.xml localizado em:

[ECM]/server/default/deploy/jbossws.sar/jbossws.beans/META-INF/


Altere a propriedade webServiceHost informando o host do servidor exposto para acesso externo.

Certifique-se que a propriedade modifySOAPAddress esteja com o valor ture.

Adicione a propriedade webServicePort com o valor 80 (porta padrão HTTP) ou a porta HTTP utilizada pelo servidor exposto para acesso externo.

Adicione a propriedade webServiceSecurePort o valor 443 (porta padrão HTTPS) ou a porta HTTPS utilizada pelo servidor exposto para acesso externo.


Exemplo:

<property name="webServiceHost">byyou.com</property>
<property name="modifySOAPAddress">true</property>
<property name="webServiceSecurePort">443</property>
<property name="webServicePort">80</property>

OBS: [ECM] é o local de instalação do ECM.


Procedimentos de Configuração de SSL


Como pré-requisito para utilizar SSL no ECM deve ser adquirido um certificado digital válido, ou seja, um certificado gerado por uma autoridade certificadora. Não é recomendado o uso de certificados self-signed (auto-assinado), já que alguns navegadores não aceitam este tipo de certificado, e podem provocar comportamentos inesperados durante a utilização do produto.


O certificado deve ser importado para um “keystore”, que é o formato reconhecido pelo servidor de aplicação. O procedimento para gerar o keystore deve ser solicitado à própria certificadora, pois este processo pode variar de acordo com cada tipo de certificado adquirido.


Após gerar o keystore, ele deve ser copiado para o diretório “conf” abaixo da instância do servidor de aplicação que se deseja configurar. Por exemplo: “C:\ByYou\ECM\server\default\conf” ou “/opt/ByYou/ECM/server/default/conf” (considerando a instância “default”).


Acesse o cadastro de empresa (com o usuário wdkAdmin) e edite as configurações da empresa. Deve ser marcada a opção “Utiliza SSL” e o campo “Porta Web” deve ser alterado para o valor da porta HTTPS que será utilizada (normalmente, utiliza-se 8443). O campo “Porta Padrão HTTP” também deve ser alterado, recebendo o valor da porta HTTP do servidor de aplicação (o padrão é 8080).

E por fim, deve ser alterado o arquivo server.xml no diretório jboss-web.deployer (exemplo: “C:\ByYou\ECM\server\default\deploy\jboss-web.deployer\server.xml” ou “/opt/ByYou/ECM/server/default/deploy/jboss-web.deployer/server.xml”), acrescentando o conteúdo abaixo. ATENÇÃO: Esta etapa final deve ser realizada com o serviço do ECM parado!

O trecho abaixo deve ser incluido OBRIGATORIAMENTE dentro da tag <Service name="jboss.web"> e abaixo do Connector da porta 8080. A autoridade certificadora que disponibilizou o certificado digital deve ser contactada, pois a configuração abaixo pode variar de acordo com o tipo do certificado.

<Connector clientAuth="false" port="8443" minSpareThreads="5" maxSpareThreads="75" enableLookups="true" disableUploadTimeout="true" acceptCount="100" maxThreads="200" scheme="https" secure="true" SSLEnabled="true" keystoreFile="$jboss.server.home.dir}/conf/keystore.jks" keystoreType="JKS" keystorePass="password" truststoreFile="${jboss.server.home.dir}/conf/keystore.jks" truststoreType="JKS" truststorePass="password" SSLVerifyClient="require" SSLEngine="on" SSLVerifyDepth="2" sslProtocol="TLS"/>

Deve-se atentar aos itens em negrito. O nome “keystore.jks” deve ser alterado para o nome do keystore gerado nas etapas anteriores. O valor do atributo “keystorePass” também deve ser alterado, substituindo a palavra “password” pela senha escolhida para o certificado digital.

O valor 8443 (configurado no atribute port) determina qual será a porta HTTPS utilizada. Este valor deve coincidir com o valor informado no cadastro de empresa, no campo “Porta Web”.

O serviço pode ser carregado novamente, e acessado através da URL: https://server:8443/webdesk.


Utilizando Webservices com SSL


Por padrão os webservices são executados sobre o protocolo HTTP, para que os mesmos utilizem SSL é necessário adicionar à execução do patch ecm-ssl-pacth a inicialização do ECM.

O patch SSL faz com que todos os webservices do ECM sejam executados sobre o protocolo HTTPS. É importante que toda a configuração de SSL tenha sido feita e que o certificado utilizado seja válido.

Configurando o patch SSL:

  • Para sistemas operacionais Windows:

Editar o arquivo run.bat adicionando abaixo a linha "set JAVA_HOME=..\jre":

  • Para sistemas operacionais Linux:

Editar o arquivo run.sh adicionando abaixo a linha "JAVA_HOME=..\jre":

sh $DIRNAME/ecm-ssl-patch.sh /opt/TOTVS/ECM default

  • Reiniciar o serviço do ECM

Observações:

*O primeiro parâmetro do script é a pasta de instalação do ECM e o segundo a instancia que será modificada.

** Para executar o patch manualmente leia o arquivo README-ECM-SSL-PATCH.txt que encontra-se na pasta bin da instalação do ECM.


Procedimentos de Configuração de DMZ com SSL


Para fazer a configuração de DMZ + SSL, devem ser efetuadas primeiramente as configurações de DMZ e SSL separadamente, conforme as seções anteriores deste documento. Após isso, executar os passos abaixo—:

Este arquivo contém o último release estável do Apache™ Server, e possui as dependências necessárias para trabalhar com certificado digital.

Caso ocorra um erro de sistema operacional ao tentar carregar o serviço do Apache™ através do executável httpd.exe, o pacote “Microsoft Visual C++ 2008 Redistributable Package” deve ser baixado e instalado.

  • Para habilitar o mod_ssl no Windows®, basta retirar o comentário (#) da linha que contém o seguinte módulo:

LoadModule ssl_module modules/mod_ssl.so

  • No caso do Linux®, o seguinte comando deve ser executado para habilitar o módulo:

a2enmod ssl

  • Alterar o VirtualHost criado durante a configuração da DMZ para que todas as ocorrências de ProxyPass e ProxyPassReverse apontem para a porta do JBoss® onde está carregado o serviço SSL. O protocolo também deve ser alterado de HTTP para HTTPS. Esta configuração NÃO DEVE ser efetuada para o VirtualHost referente a porta RTMPT (porta 2038).
  • Exemplo (considerando que estava sendo utilizada a porta padrão 8080 [HTTP], e passou a ser utilizada a porta 8443 [HTTPS]):

 

Alterar de:
ProxyPass /webdesk http://server:8080/webdesk
ProxyPassReverse /webdesk http://server:8080/webdesk

Para:
ProxyPass /webdesk https://server:8443/webdesk
ProxyPassReverse /webdesk https://server:8443/webdesk


  • No diretório da documentação, em Arquivos Adicionais, estão disponíveis todos os arquivos de configuração necessários, previamente configurados, para as plataformas Windows® e Linux®. Estes arquivos podem ser utilizados como exemplo.
  • Adicionar os atributos abaixo, no VirtualHost 8443, para habilitar o certificado digital:

 

SSLProxyEngine On
SSLEngine On
SSLCertificateFile conf/ssl/my-server.cert
SSLCertificateKeyFile conf/ssl/my-server.key


ATENÇÃO: Este exemplo assume que o certificado digital do Apache™ está no diretório “ssl”, abaixo do diretório “conf” do Apache™, e que o nome do certificado é “my-server”.


Para finalizar, certifique-se de que as opções de DMZ e SSL estão marcados no cadastro da empresa. Reinicie os serviços do Servidor de Aplicação e do Apache™ para efetivar as configurações.

Observação: Se ao realizar o upload de arquivos, ocorrer o erro “Não foi possível fazer o upload. Verifique se o arquivo não está vazio (0Kb).”, verifique se o seu certificado utilizado é um certificado válido. Certificados auto-assinados, ou gerados por uma instituição não-válida irão restringir o envio de arquivos. Para maiores informações confira o link: http://swfupload.org/forum/generaldiscussion/347



  • Sem rótulos