Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Informações
titleAtenção

Esta página foi revisada para considerar as novas configurações de server do fluig para a TOTVS Fluig Plataforma a partir da atualização 1.6.Caso possua uma atualização anterior do fluig acesse: Configuração de Níveis de Segurança no HTTPS das versões 1.5.13 e anteriores.

Índice

Índice
maxLevel4
outlinetrue
exclude.*ndice
stylenone

...

O objetivo deste artigo é descrever os procedimentos necessários para definir o nível de segurança aplicado ao protocolo SSL/TLS em ambientes fluig que possuem o HTTPS habilitado.

...

Para que se tenha uma compreensão completa destas informações, alguns conhecimentos são considerados pré-requisitos, entre eles:

  • Visão geral sobre o fluiga plataforma TOTVS Fluig
  • Visão geral sobre níveis de segurança e certificado digital

Além disso, é necessário acesso ao servidor onde o fluig está instaladoa plataforma está instalada.


Níveis de Segurança

...

O mercado adota como padrão para definir os níveis de segurança para o protocolo SSL/TLS níveis de compatibilidade, que são uma combinação dos Ciphersuite, versões do protocolo SSL/TLS, tamanho da chave RSA, assinatura do certificado, entre outros. Esses níveis de compatibilidade são divididos entre compatibilidade ModernaIntermediária e Antiga, e podem ser observados no site de boas práticas para SSL/TLS mantido pela Mozilla.

Nota
titleAtenção

O nível de segurança aplicado ao HTTPS no fluig na plataforma irá definir sua compatibilidade com navegadores (ex. IE, Chrome, Safari, Firefox) e executáveis (ex. Java). Navegadores e executáveis mais antigos podem apresentar falhas de comunicação com o fluig em a plataforma em virtude dos mesmos não suportarem todas as implementações de segurança modernas para realizar a comunicação.

...

Para garantir um alto nível de segurança nas configurações HTTPS do fluigda plataforma, iremos apresentar alguns cenários com configurações utilizando a compatibilidade Moderna descrito no guia de segurança mantido pela Mozilla para o protocolo SSL/TLS.

HTTPS

...

na plataforma

...

No cenário abaixo, toda a configuração HTTPS é realizada diretamente no fluig.na plataforma.

Dica
titleDica!

Você também pode conferir se sua configuração HTTPS está funcionando corretamente, através da ferramenta: https://www.sslshopper.com/ssl-checker.html

Informações
titleImportante

Todas as configurações abaixo devem ser realizadas com o fluig a plataforma fora do ar.


Abaixo seguem as alterações que devem ser realizadas no arquivo de configuração ([Instalação fluigdiretório_instalação]/appserver/domain/configuration/domain.xml) do fluig para habilitar a compatibilidade Moderna.

Bloco de código
titledomain.xml
<subsystem<server xmlnsname="urn:jboss:domain:undertow:3.1default-server">
	<...>
	<https-listener name="https" socket-binding="https" max-post-size="1073741824" security-realm="TOTVSTech" enabled-cipher-suites="TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256:TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384:TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK" enabled-protocols="TLSv1,TLSv1.1,TLSv1.2" />
	# Se necessário complemente com outras chaves Ciphers suportadas
	<...>
</server>
Nota

Recomendamos o uso de chaves mais modernas e seguras como os indicados no exemplo. Porém, outras chaves também são suportadas:

Bloco de código
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256:TLS_DHE_DSS_WITH_AES_128_GCM_SHA256:TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256:TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256:TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA:TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA

:TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384:TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384:TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA:TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA:TLS_DHE_RSA_WITH_AES_128_CBC_SHA256:TLS_DHE_RSA_WITH_AES_128_CBC_SHA

:TLS_DHE_DSS_WITH_AES_128_CBC_SHA256:TLS_DHE_RSA_WITH_AES_256_CBC_SHA256:TLS_DHE_DSS_WITH_AES_256_CBC_SHA:TLS_DHE_RSA_WITH_AES_256_CBC_SHA
:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK" enabled-protocols="TLSv1,TLSv1.1,TLSv1.2" /> <...> </subsystem>  

Preencha a diretiva enabled-cipher-suites do domain.xml substituindo pelos valores suportados acima que estejam de acordo com sua política de segurança. As chaves podem ser validadas em https://ciphersuite.info/.

Abaixo seguem as alterações que devem ser realizadas no arquivo de configuração ([Instalação fluigdiretório_instalação]/appserver/bin/domain.conf.bat para Windows ou [Instalação fluig]/appserver/bin/domain.conf para Linux) do fluig /configuration/host.xml) para habilitar a compatibilidade Moderna.

Bloco de código
languagebash
titledomainhost.confxml
    <server auto-start="true" group="fluig" name="fluig1">
      <jvm name="default">
        <heap max-size="${env.FLUIG_MEMORY_MAX:4g}" size="${env.FLUIG_MEMORY_MIN:2g}" />
        <jvm-options>
          <option value="-Dfile.encoding=utf8" />
          <option value="-XX:MaxMetaspaceSize=1024m" />
          <option value="-Djavamelody.disabled=true" />

          # Adicione esta linha:
          <option value="if [ "x$JAVA_OPTS" = "x" ] || [ "x$JAVA_OPTS" = "x-Xrs" ] ; then
...
JAVA_OPTS="$JAVA_OPTS -Djdk.tls.ephemeralDHKeySize=2048" />

        </jvm-options>
      </jvm>
    </server>
Nota
titleImportante

Caso o Fluig esteja abaixo da versão 1.

.. fi

...

7.0, é necessário instalar e habilitar o Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files junto

...

à plataforma, que permite a utilização de Ciphersuites mais modernos e avançados na plataforma.

A instalação do mesmo consiste em remover os arquivos ${fluig-dir}/jdk-64/jre/lib/security/local_policy.jar e ${fluig-dir}/jdk-64/jre/lib/security/US_export_policy.jar do diretório

...

da plataforma, e descompactar os arquivos do JCE no diretório ${fluig-dir}/jdk-64/jre/lib/security.

Informações
titleOpcional

A porta do HTTPS no fluig na plataforma também pode ser alterada para 443, porta padrão do HTTPS que permite o acesso ao endereço sem a necessidade de informar uma porta de acesso, apenas o protocolo https://.

...

Abaixo seguem as alterações que devem ser realizadas no arquivo de configuração (domain.xml) do fluig para da plataforma para mudar a porta para 443.


Bloco de código
titledomain.xml
<socket-binding-group name="standardfull-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">
	<...>
    	<socket-binding name="https" port="443"/>
	<...>
</socket-binding-group>
Dica
titleDica!
Você também pode conferir se sua configuração HTTPS está funcionando corretamente, através da ferramenta: https://www.sslshopper.com/ssl-checker.html


# Em algumas versões, pode estar como abaixo: 
# <socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">


HTTPS no Apache

...

No cenário abaixo, toda a configuração HTTPS é realizada no Apache. Este é o cenário quando o fluig é configurado a plataforma é configurada através de um proxy reverso.

Abaixo seguem as alterações que devem ser realizadas no arquivo de configuração (geralmente fluig.conf) do fluig da plataforma no Apache para habilitar a compatibilidade Moderna.

Dica
titleDica!

Você também pode conferir se sua configuração HTTPS está funcionando corretamente, através da ferramenta: https://www.sslshopper.com/ssl-checker.html

Bloco de código
languagebash
titlefluig.conf
<VirtualHost *:443>
    ...
    SSLProxyEngine On
    SSLEngine On
    SSLProtocol +TLSv1 +TLSv1.1 +TLSv1.2
    SSLHonorCipherOrder on
    SSLCipherSuite "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK" # Se necessário complemente com outras chaves Ciphers suportadas
    SSLCompression Off
    ...
</VirtualHost>
Nota

Recomendamos o uso de chaves mais modernas e seguras como os indicados no exemplo. Porém, outras chaves também são suportadas:

DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA

:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK" SSLCompression Off ... </VirtualHost>

Preencha a diretiva SSLCipherSuite do fluig.conf substituindo pelos valores suportados acima que estejam de acordo com sua política de segurança. As chaves podem ser validadas em https://ciphersuite.info/


Nestes casos em que o SSL é configurado em um balanceador, é necessário incluir a propriedade proxypropriedade proxy-address-forwarding na configuração do fluigda plataforma, no arquivo domain.xml. A configuração será diferenciada, caso o ambiente esteja configurado para utilizar o fluig Mobile, conforme abaixo:

Deck of Cards
historyfalse
idmobile
Card
id1
labelNão utiliza Mobile



Bloco de código
titledomain.xml
<subsystem<server xmlnsname="urn:jboss:domain:undertow:3.1default-server">
	<...>
	<http-listener max-post-size="1073741824" name="default" proxy-address-forwarding="true" socket-binding="http"/>
	<...>
</subsystem>server>



Card
id2
labelUtiliza o fluig Mobile
Bloco de código
titledomain.xml
<subsystem<server xmlnsname="urn:jboss:domain:undertow:3.1default-server">
	<...>
	<https-listener name="https" socket-binding="https" max-post-size="1073741824" security-realm="TOTVSTech" enabled-cipher-suites="TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256:TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384:TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384:TLS_DHE_RSA_WITH_AES_128_GCM_SHA256:TLS_DHE_DSS_WITH_AES_128_GCM_SHA256:TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256:TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256:TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA:TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA:TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384:TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384:TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA:TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA:TLS_DHE_RSA_WITH_AES_128_CBC_SHA256:TLS_DHE_RSA_WITH_AES_128_CBC_SHA:TLS_DHE_DSS_WITH_AES_128_CBC_SHA256:TLS_DHE_RSA_WITH_AES_256_CBC_SHA256:TLS_DHE_DSS_WITH_AES_256_CBC_SHA:TLS_DHE_RSA_WITH_AES_256_CBC_SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK" enabled-protocols="TLSv1,TLSv1.1,TLSv1.2" />
	<...>
</subsystem>
 server>



Validação das Configurações

...

Nota
titleAtenção

Para a realização desse teste será mandatório que o fluig a plataforma esteja disponível para acesso através da internet.

...