Esta página foi revisada para considerar as configurações da release 1.6.0 à 1.6.4 - Waterdrop do fluig.

Se possui uma atualização 1.6.5 do fluig, acesse: Configuração HTTPS no fluig na release 1.6.5.


Índice


Objetivo

O objetivo deste guia é expor os passos necessários para utilização do fluig sobre o protocolo HTTPS.


Pré-requisitos


Obter um certificado válido

Para o certificado ser válido para a internet, este deve ser emitido para um domínio específico (WildCard) ou para um host deste domínio, o que torna obrigatório configurar o fluig com o mesmo domínio do certificado caso deseje o uso de HTTPS (ex: *.suaempresa.com.br).

Se o certificado for vinculado ao fluig e o acesso continuar sendo via IP (e não pelo domínio), constantes mensagens de certificado não confiável serão apresentadas, pois o navegador tentará validar a URL de acesso com o domínio do certificado, retornando erro.

Caso sua empresa ainda não possua nenhum certificado, o mesmo deve ser adquirido de 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 fluig.

Uma alternativa gratuita é oferecida pela Linux Foundation através do site Let's Encrypt. Saiba mais acessando a FAQ Certificado HTTPS (SSL/TLS) Gratuito.

Caso tenha dúvidas sobre os procedimentos realizados no OpenSSL, consulte a FAQ Utilizando OpenSSL para configurar HTTPS.


Procedimentos de configuração de SSL

Navegue nos passos abaixo para configuração do SSL no servidor de aplicação:


  • Parar os serviços do fluig (fluig, fluig_indexer, fluig_RealTime e cache, caso estiver utilizando cache externo e.g: MemCached ou redis).



  1. No arquivo domain.xml, localizado em [Instalação fluig]/appserver/domain/configuration, incluir a tag <https-listener> no subsystem "undertow". Não deve ser retirado a tag contendo as configurações HTTP.
  2. Na tag HTTP, acrescente o atributo proxy-address-forwarding="true" conforme mostrado abaixo:
  3. Caso deseje restringir o tráfego de cookie de sessão em conexões seguras (HTTPS), basta incluir nas configurações do subsystem undertow a tag session-cookie informando o atributo secure ="true". (Opcional)
<subsystem xmlns="urn:jboss:domain:undertow:3.1">
	<...>
	<server name="default-server">
		<http-listener max-post-size="1073741824" name="default" socket-binding="http" proxy-address-forwarding="true"/> <!-- 2- Adicionar nesta linha o atributo -->
		<https-listener name="https" secure="true" security-realm="TOTVSTech" socket-binding="https"/> <!-- 1- Incluir esta linha para validação do certificado -->
		<...>
	</server>
	<servlet-container name="default" stack-trace-on-error="local-only">
		<...>
		<session-cookie http-only="true" secure="true"/> <!-- 3- Incluir esta linha para restringir o tráfego de cookie de sessão -->
	</servlet-container>   
	<...>
</subsystem>

  • No arquivo host.xml, localizado em [Instalação fluig]/appserver/domain/configuration, altere o <security-realm name="TOTVSTech"> incluindo as configurações de certificado.

Disponibilizamos as instruções de configuração do repositório de certificados no formato PKCS12 (p12) portanto, siga as instruções abaixo:
  • Incluir a tag <server-identities></server-identities> juntamente com <ssl> e o <keystore> conforme exemplicado no código abaixo;
  • No atributo path, informe o diretório do repositório de certificados (keystore.p12).
  • Em key-password e keystore-password, substitua a valor "suasenha" pela senha utilizada na criação do repositório de certificados (keystore).

Em <security-realm name="ApplicationRealm"> também contém as configurações de certificado porém, suas informações não devem ser modificadas, deixando os valores padrões salvos.

<security-realm name="TOTVSTech">
	<server-identities>
		<ssl>
			<keystore path="certs\fluig.p12" keystore-password="suasenha" key-password="suasenha" relative-to="jboss.domain.config.dir"/> 
		</ssl>
	</server-identities>
	<...>
</security-realm>

O diretório "certs" é relativo ao diretório de configuração do servidor de aplicação, por exemplo, "C:\fluig\appserver\domain\configuration\certs".

Dúvidas sobre a utilização do OpenSSL ou sobre os comandos de exportação do PKCS12 (p12), consulte a FAQ Utilizando OpenSSL para configurar HTTPS.


  • Iniciar novamente os serviços do fluig em sua ordem correta (cache, caso estiver utilizando cache externo e.g: MemCached ou redis, fluig_indexer, fluig_RealTime e fluig).
  • O acesso será realizado via HTTPS, na porta 8443.



Configuração para utilização do fluig Studio com SSL

 A alteração abaixo é necessária para o correto funcionamento do plugin fluig Studio no TOTVS Developer Studio ou Eclipse quando o SSL está habilitado.


  1. No diretório em que o fluig Studio foi instalado, editar o arquivo eclipse.ini;
  2. Adicione a linha abaixo no final do arquivo.
-Djsse.enableSNIExtension=false


  • Para chamadas de Web Service é importante configurar o arquivo de configuração domain.xml localizado em [Instalação fluig]/appserver/domain/configuration.
  • Procurar o trecho abaixo:
...
<subsystem xmlns="urn:jboss:domain:webservices:2.0">
    <modify-wsdl-address>true</modify-wsdl-address>
    <wsdl-host>10.80.73.203</wsdl-host>
    <endpoint-config name="Standard-Endpoint-Config"/> 
...
  • Alterar para:
...
<subsystem xmlns="urn:jboss:domain:webservices:1.2">
    <modify-wsdl-address>true</modify-wsdl-address>
    <wsdl-host>jbossws.undefined.host</wsdl-host>
    <wsdl-uri-scheme>https</wsdl-uri-scheme>
    <wsdl-secure-port>443</wsdl-secure-port>       
    <endpoint-config name="Standard-Endpoint-Config"/>
...

Alterar a porta da tag "<wsdl-secure-port>443</wsdl-secure-port>" para a porta de acesso utilizada (Portas padrões 443 e 8443).


Configurar notificações em tempo real

O serviço responsável pelas notificações em tempo real (entrega de dados do servidor para os clientes) também deve ser preparado para funcionar via HTTPS, quando essa configuração for realizada no fluig.

  • Não é permitido utilizar barra invertida ou contra barras "\" para informar os caminhos do certificado e chave privada no arquivo package.json. Caso for utilizada, o serviço de RealTime (Node) não irá subir.
  • Caso o certificado possua uma senha na chave informada, é necessário remover a senha. Caso contrário, o Node.js não será iniciado.
  • Se o servidor possuir proxy, é necessário liberar as portas do serviço de notificações em tempo real para SSL nesse proxy.
  • Caso seu certificado e chave estiverem no formato de repositório de certificados PKCS12 (p12), consulte a FAQ Utilizando OpenSSL para configurar HTTPS para obter os comandos de exportação dos mesmos. Para isso, é preciso que o pacote OpenSSL esteja instalado no servidor.
  • Importante mencionar que a linha que contém a porta nas configurações do SSL no arquivo package.json deve ser apagada.

Para isso, o arquivo [Instalação node]/fluig.rt/package.json deve ser editado, alterando as seguintes informações abaixo. Em sistemas operacionais Linux, o arquivo package.json fica localizado em [Instalação node]/bin/fluig.rt/.

"ssl" : {
     "usessl": true,
	 "key": "c:/fluig/certificado/server.key",
     "cert": "c:/fluig/certificado/server.crt",
     "ca": "c:/fluig/certificado/server.crt"
}


Os atributos devem ser alterados conforme abaixo:

Atributo

Descrição

usessl

Informar true, para caracterizar a utilização de configuração HTTPS

key

Informar o caminho do arquivo de chave

certInformar o caminho do arquivo de certificado
caInformar o caminho do arquivo de certificado


Após a alteração do package.json, o serviço RealTime (Node.js) deve ser reiniciado.



Certificado digital mobile

As plataformas de dispositivos móveis (iOS, Android) possuem limitações com relação aos certificados digitais. Por padrão, apenas o certificados homologados por elas são reconhecidos como confiáveis.

Para evitar a aquisição de certificados não homologados, é preciso consultar a documentação técnica de cada plataforma sobre a lista de certificados reconhecidos como confiáveis:


A lista de certificados confiáveis para o iOS 9 e 10 está disponível aqui.



É necessário verificar no aparelho em: Configurações > Segurança > Credenciais Confiáveis

Na Aba Sistema existe a lista de certificados confiáveis para aquela versão do Android.

Cada versão do Android pode ter uma lista de certificados confiáveis diferente.


A lista de certificados confiáveis para o Windows Phone 8 está disponível aqui.


Em caso de dúvidas, procure a unidade certificadora para assegurar que seu certificado é homologado pelas plataformas mencionadas acima.


URL do portal

Após configurar o HTTPS na instalação do fluig, é necessário ajustar a URL do portal com o novo protocolo.

Para isto, deve-se acessar a plataforma com o wcmadmin, abrir o Painel de controle → aba WCM → Configurações do Sistema.

Na aba Portal, definir no campo URL do portal do fluig, agora com o "https".

Caso não esteja utilizando um web server, é necessário informar a porta de acesso da URL. Exemplo: https://[host]:[porta]/portal.

Para acessar o fluig com HTTPS através do fluig Mobile, basta adicionar uma conta com a nova URL do portal no aplicativo.



Informar a URL de acesso ao portal utilizando o protocolo https no início do endereço