Esta página foi revisada para considerar as configurações do TOTVS Fluig Plataforma na atualização 1.6.5 - Liquid ou superior.

Caso possua uma atualização 1.6.4 - Waterdrop ou inferior, acesse: Configuração HTTPS da release 1.6.0 a 1.6.4.

Clientes cloud precisam entrar em contato com o time de Cloud para que eles realizem esse procedimento.

Caso encontre dificuldades para cadastrar o serviço, essa documentação pode lhe ajudar: Resolução de inconsistência (PKIX path validation failed) ao cadastrar serviço.



Objetivo


O objetivo deste guia é apresentar os passos necessários para utilização do TOTVS Fluig Plataforma com 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 a plataforma 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 da plataforma.


Configuração de HTTPS pelo wcmadmin


A partir da atualização Crystal Lake (1.7.1), a configuração de HTTPS pode ser realizada diretamente pelo Painel de controle da plataforma, para isso é necessário seguir os passos abaixo.


  • Acessar a plataforma com o usuário wcmadmin.
  • No menu principal, acionar Painel de Controle, logo depois verificar o agrupador WCM e acionar Configurações do sistema.

  • Na aba Portal, marcar a opção HTTPS no campo Protocolo.

Será apresentada uma mensagem informando que, ao alterar o protocolo para HTTPS, será necessário configurá-lo. 

  • Acionar Configurar para prosseguir com a configuração em tela.

  • Selecionar no campo Plataforma como será configurado o protocolo HTTPS. As opções são: Apache, Nginx ou TOTVS Fluig Plataforma. 

A opção Apache ou Nginx é utilizada quando a plataforma é configurada através de um proxy reverso. Sempre recomendamos configurar um ambiente distribuído (com topologia DMZ) para reforçar a segurança de seu ambiente. Para mais detalhes consulte a documentação de Configuração de Proxy Reverso.

  • Configurar o certificado digital de acordo com a opção escolhida:


TOTVS Fluig Plataforma


 Veja a imagem

Preencha os campos abaixo:

  • Certificado
    Selecione o certificado digital que será utilizado para estabelecer a conexão segura da plataforma. Os formatos de arquivos permitidos são: .p12 e .pfx
  • Senha
    Informe a senha do certificado digital para estabelecer a conexão segura da plataforma.
  • Caminho da chave
    Informe o caminho completo (com extensão), da chave privada do certificado para estabelecer a conexão segura da plataforma.


Apache ou Nginx


 Veja a imagem

Primeiramente, preencha os campos abaixo:

  • Caminho do certificado
    Informe o caminho completo (com extensão .crt, .pem ou .p12), do certificado digital gerado para estabelecer a conexão segura da plataforma. 
  • Caminho da chave
    Informe o caminho completo (com extensão .key ou .pem), da chave privada do certificado para estabelecer a conexão segura da plataforma.

Após isso, acione a opção Gerar arquivo para gerar um template com as configurações HTTPS.

Por último, baixe o arquivo gerado e utilize para finalizar a configuração na plataforma selecionada (Nginx ou Apache).

  • Acionar Salvar.

Serão realizadas algumas verificações, para validar se o certificado está correto, se a senha informada corresponde ao certificado, entre outras. Se estiver tudo certo, a plataforma realiza as alterações necessárias para concluir a configuração. Ao final, será apresentada a mensagem de sucesso. 

  • Reiniciar os serviços da plataforma.

Após configurar o HTTPS na instalação da plataforma, é recomendável conferir se está funcionando corretamente. O teste pode ser feito através da ferramenta SSL Checker.

Com a configuração, será possível acessar também o aplicativo Fluig Mobile com HTTPS, sem necessidade de configurações adicionais.


Configuração de HTTPS manual


Caso opte por fazer a configuração manual ou esteja em uma atualização anterior a 1.7.1, os procedimentos de configuração de SSL devem ser realizados conforme os passos abaixo:


Observação interna:

A explicação abaixo foi repassada ao artigo: https://centraldeatendimento.fluig.com/hc/pt-br/articles/360027390832 (Como configurar a plataforma com o protocolo HTTPS)

Caso tenha alguma alteração, lembrar de repassar a esse artigo!


  • 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 retirada 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 max-post-size="1073741824" name="https" secure="true" security-realm="TOTVSTech" socket-binding="https"/> <!-- 1- Incluir esta linha para validacao 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 trafego de cookie de sessao -->
	</servlet-container>   
	<...>
</subsystem>

  • A partir da atualização 1.7.0 (Lake), a tag <security-realm> não existirá mais, porém pode ser incluída conforme desejo do usuário em habilitar o uso do HTTPS. Nesse caso, será preciso procurar a tag <security-realm> no arquivo host.xml.

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" />
    </ssl>
  </server-identities>
</security-realm>

O diretório "certs" se refere à pasta onde os certificados são guardados. Recomendamos que esse diretório seja criado dentro do volume, para evitar que, em uma atualização ou migração de tecnologia, a pasta seja afetada.

Dúvidas sobre a utilização do OpenSSL ou sobre os comandos de exportação do PKCS12 (p12), consulte a documentação 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.



  • Após configurar o HTTPS na instalação do TOTVS Fluig Plataforma, é necessário ajustar o domínio de acesso com o novo protocolo.
  • Para isto, será necessário acessar a plataforma com o usuário wcmadmin, e nas configurações do sistema, na aba Portal, alterar o Protocolo para HTTPS. Caso não esteja utilizando um web server, é necessário também informar a Porta de acesso do servidor da plataforma. Para mais informações, consulte a documentação Gerenciar configurações do sistema.


É recomendável revisar o limite de tempo das requisições lentas, como forma de trazer mais segurança à plataforma. Acesse a documentação de Prevenção de ataques DDoS Slow Post e Slow Headers e saiba mais.


Configurações adicionais


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:2.0">
    <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.

  • 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 documentação 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.
passphraseEsse parâmetro não é obrigatório. Caso tenha sido usada uma senha para geração do certificado, pode ser necessário adicionar esse parâmetro indicando a senha.

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:

PlataformaComo consultar
iOSA lista de certificados confiáveis para o iOS está disponível aqui.
Android

É 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 explicação acima foi repassada ao artigo: https://centraldeatendimento.fluig.com/hc/pt-br/articles/360034474534 (Erro ao informar o servidor no Android)

Caso tenha alguma alteração, lembrar de repassar a esse artigo!

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

Caso o seu certificado não esteja na lista dos homologados, realize o procedimento descrito no item Procedimentos de configuração de SSL, mas lembre-se de que o arquivo .p12 que você utilizar deve conter também o certificado intermediário. Para gerar o arquivo .p12 com todos os certificados juntos siga esses passos:

  1. Para gerar o Bundle (intermediário + root):
    cat intermediario.pem root.pem > bundle.pem

  2. Para gerar o PEM do fluig.com:
    cat fluig.crt fluig.key bundle.pem > fluig.pem

  3. Para gerar o PKCS#12 do fluig.com:
    openssl pkcs12 -export -out fluig.p12 -inkey fluig.key -in fluig.crt -certfile bundle.pem

Para acessar a plataforma com HTTPS através do Fluig Mobile, basta adicionar uma conta com a nova URL do portal no aplicativo. Para mais detalhes sobre o acesso, confira a documentação por sistema (Android ou iOS).

<script>
	$("b:contains('oculto')").parent().parent().hide();
</script>