Zimbra: Habilitando TLS 1.3 (8.8.15 e 9.0.0)

Olá! Nesse artigo eu gostaria de falar sobre a implementação do TLS 1.3 no Zimbra, que foi promovido a estável nos patchs 20 e 13 das versões 8.8.15 e 9.0.0, respectivamente:

https://wiki.zimbra.com/wiki/Zimbra_Releases/9.0.0/P13

https://wiki.zimbra.com/wiki/Zimbra_Releases/8.8.15/P20

Para habilitar o TLS 1.3 é necessário que o seu ambiente esteja com as seguintes versões ou superiores:

8.8.15 Patch 20

9.0.0 Patch 13

Para habilitar, é necessário aplicar as configurações nos componentes Proxy e Mailbox, portanto, se estiver em um ambiente Multi Server, aplique as configurações em cada servidor com estes serviços.

Habilitando o TLS 1.3 no Proxy:

$ zmprov mcf +zimbraReverseProxySSLProtocols TLSv1.3

Adicione a cifra TLS_AES_256_GCM_SHA384:

zmprov mcf zimbraReverseProxySSLCiphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384: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:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128:AES256:TLS_AES_256_GCM_SHA384:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4'

Reinicie o serviço do Proxy:

$ zmproxyctl restart

Habilitando o TLS 1.3 no Mailbox:

Esta configuração exige um pouco mais de atenção, pois você precisa ajustar o parâmetro mailboxd_java_options com valores do seu ambiente, adicionando “TLSv1.3” nas opções “https.protocol” e “tls.client.protocols”

Exemplo:

Obtendo os valores do ambiente:

$ zmlocalconfig mailboxd_java_options
mailboxd_java_options = -server -Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2 -Djdk.tls.client.protocols=TLSv1,TLSv1.1,TLSv1.2 -Djava.awt.headless=true -Dsun.net.inetaddr.ttl=${networkaddress_cache_ttl} -Dorg.apache.jasper.compiler.disablejsr199=true -XX:+UseG1GC -XX:SoftRefLRUPolicyMSPerMB=1 -XX:+UnlockExperimentalVMOptions -XX:G1NewSizePercent=15 -XX:G1MaxNewSizePercent=45 -XX:-OmitStackTraceInFastThrow -verbose:gc -Xlog:gc*=info,safepoint=info:file=/opt/zimbra/log/gc.log:time:filecount=20,filesize=10m -Djava.net.preferIPv4Stack=true

Modicando os parâmetros copiando o conteúdo e alterando somente as duas opções citadas acima:

$ zmlocalconfig -e mailboxd_java_options='-server -Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2,TLSv1.3 -Djdk.tls.client.protocols=TLSv1,TLSv1.1,TLSv1.2,TLSv1.3 -Djava.awt.headless=true -Dsun.net.inetaddr.ttl=${networkaddress_cache_ttl} -Dorg.apache.jasper.compiler.disablejsr199=true -XX:+UseG1GC -XX:SoftRefLRUPolicyMSPerMB=1 -XX:+UnlockExperimentalVMOptions -XX:G1NewSizePercent=15 -XX:G1MaxNewSizePercent=45 -XX:-OmitStackTraceInFastThrow -verbose:gc -Xlog:gc*=info,safepoint=info:file=/opt/zimbra/log/gc.log:time:filecount=20,filesize=10m -Djava.net.preferIPv4Stack=true'

Reinicie o serviço do Mailbox:

$ zmmailboxdctl restart

2 comentários em “Zimbra: Habilitando TLS 1.3 (8.8.15 e 9.0.0)

  1. Boa tarde Fábio

    Meu servidor Zimbra estava com a versão 8.6.0. Para fazer a implementação do TLSv1.3 conforme seu artigo, fiz a atualização do Zimbra para Release 8.8.15.GA.3869 Patch 8.8.15_P21. Tudo ocorreu bem.

    Porém ao habilitar o TLS 1.3 no Mailbox após reiniciar o serviço o mesmo não subiu. Até reiniciar o proxy deu tudo certo.

    único log que relatou algum erro foi no arquivo de log “zmmailboxd.out” com a seguinte mensagem:
    error could not create the java virtual machine

    Vi no seu artigo “Zimbra: Serviço mailbox não inicia após atualização para a versão 8.8.15” que detectasse um erro de parametros no arquivo “mailboxd_java_options”.

    Juntei uma peça com outra e vi que meu arquivo “mailboxd_java_options” estão com menos parâmetros que o teu arquivo exibido aqui neste artigo, esse é o meu “mailboxd_java_options”:

    mailboxd_java_options = -server -Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2 -Djdk.tls.client.protocols=TLSv1,TLSv1.1,TLSv1.2 -Djava.awt.headless=true -Dsun.net.inetaddr.ttl= -Dorg.apache.jasper.compiler.disablejsr199=true -XX:+UseG1GC -XX:SoftRefLRUPolicyMSPerMB=1 -XX:-OmitStackTraceInFastThrow -verbose:gc -Xlog:gc*=debug,safepoint=info:file=/opt/zimbra/log/gc.log:time:filecount=20,filesize=10m -Djava.net.preferIPv4Stack=true

    Além de não estar com os parâmetros novos do TLSv1.3 (não estão para não confundir) não tenho os seguintes parâmetros iguais ao teu arquivo:
    Dsun.net.inetaddr.ttl=${networkaddress_cache_ttl}
    -XX:+UnlockExperimentalVMOptions
    -XX:G1NewSizePercent=15
    -XX:G1MaxNewSizePercent=45

    Pode ser que o erro está ocorrendo por falta destes parâmentros?

    Obrigado pela ajuda.

  2. Bom dia,

    Neste fim de semana coloquei os parâmetros faltantes no arquivo “mailboxd_java_options”. Ao reiniciar o Mailbox subiu tudo certo, sem erros.

Deixe um comentário