Árvore de páginas



Nota:

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.

Plataforma em Cloud

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

Dica!

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


  • Possuir um certificado digital válido;
  • Ter um host no DNS configurado para a plataforma em um domínio específico. 


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).

Nota:

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.

Dicas!


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:


    oculto

    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)
      domain.xml
      <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).

      Importante!

      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.

      host.xml
      <security-realm name="TOTVSTech">
        <server-identities>
          <ssl>
            <keystore path="certs\fluig.p12" keystore-password="suasenha" key-password="suasenha" />
          </ssl>
        </server-identities>
      </security-realm>

      Dica!

      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.


      Importante!

      É 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.
        eclipse.ini
        -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:
        domain.xml
        ...
        <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:
        domain.xml
        ...
        <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"/>
        ...

        Importante!

        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.

        Importante!

        • 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/.

        package.json
        "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.

        Importante!

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

        oculto

        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.

        Importante!

        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

        Importante!

        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).