Histórico da Página
Informações | ||
---|---|---|
| ||
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 | ||||||||
---|---|---|---|---|---|---|---|---|
|
...
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 Moderna, Intermediária e Antiga, e podem ser observados no site de boas práticas para SSL/TLS mantido pela Mozilla.
Nota | ||
---|---|---|
| ||
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 fluigna plataforma.
Dica | ||
---|---|---|
| ||
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 | ||
---|---|---|
| ||
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 | ||
---|---|---|
| ||
<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.3" /> # Se necessário complemente com outras chaves Ciphers ou protocolos suportados <...> </server> |
Nota | ||||||||
---|---|---|---|---|---|---|---|---|
Recomendamos o uso de chaves e protocolos mais modernos e seguros como os indicados no exemplo. Porém, outras chaves também são suportadas:
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/. E também os protocolos: TLSv1, TLSv1.1 ,e TLSv1.2 " /> <...> </subsystem>Preencha a diretiva enabled-protocols do domain.xml substituindo pelos valores suportados acima que estejam de acordo com sua política de segurança.
|
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 | ||||
---|---|---|---|---|
| ||||
<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 | ||
---|---|---|
| ||
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 | ||
---|---|---|
| ||
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 | ||
---|---|---|
| ||
<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> # 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.
...
Bloco de código | ||||
---|---|---|---|---|
| ||||
<VirtualHost *:443> ... SSLProxyEngine On SSLEngine On SSLProtocol +TLSv1 +TLSv1.1 +TLSv1.2.3 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 e protocolos mais modernos e seguros 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> |
Nestes casos em que o SSL é configurado em um balanceador, é necessário incluir a propriedade proxy-address-forwarding na configuração do fluig, no arquivo domain.xml. A configuração será diferenciada, caso o ambiente esteja configurado para utilizar o fluig Mobile, conforme abaixo:
Deck of Cards | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||
|
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/ E também os protocolos: TLSv1, TLSv1.1 e TLSv1.2 Preencha a diretiva SSLProtocol do fluig.conf substituindo pelos valores suportados acima que estejam de acordo com sua política de segurança.
| |||||
Dica | |||||
---|---|---|---|---|---|
| |||||
Você também pode conferir se sua configuração HTTPS está funcionando corretamente, através da ferramenta: https://www.sslshopper.com/ssl-checker.html |
Validação das Configurações
...
Nota | ||
---|---|---|
| ||
Para a realização desse teste será mandatório que o fluig a plataforma esteja disponível para acesso através da internet. |
...