...
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,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 ([diretório_instalação]/appserver/bin/domain.conf.bat para Windows ou [diretório_instalação]/appserver/bin/domain.conf para Linux/configuration/host.xml) para habilitar a compatibilidade Moderna.
Bloco de código |
---|
language | bash |
---|
title | domainhost.confxml |
---|
|
if [<server "x$JAVA_OPTSauto-start="true" group="fluig" name="xfluig1" ]; then
...
JAVA_OPTS="$JAVA_OPTS -Djdk.tls.ephemeralDHKeySize=2048"
...
fi
# Em algumas versões, pode estar como abaixo:
# if [ "x$JAVA_OPTS" = "x" ] || [ "x$JAVA_OPTS" = "x-Xrs" ] ; then |
...
>
<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="-Djdk.tls.ephemeralDHKeySize=2048" />
</jvm-options>
</jvm>
</server> |
Nota |
---|
|
Caso o Fluig esteja abaixo da versão 1.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 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://. |
...
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 a plataforma é configurada através de um proxy reverso.
...
Bloco de código |
---|
language | bash |
---|
title | fluig.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 da 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 |
---|
|
Card |
---|
id | 1 |
---|
label | Não utiliza Mobile |
---|
|
Bloco de código |
---|
| <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 |
---|
id | 2 |
---|
label | Utiliza o fluig Mobile |
---|
| 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: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
...