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