Objetivo
Configurar corretamente certificados TLS no Openfire com Let’s Encrypt, garantindo o envio de arquivos sem erros de certificado no Gajim.
Pré-requisitos
- Openfire instalado e em funcionamento.
- Domínio apontando corretamente para o IP do servidor.
- Acesso root ou sudo ao servidor Linux.
- Apache ou algum servidor web disponível para auxiliar no desafio HTTP do Let’s Encrypt.
1. Emitindo o certificado com Let’s Encrypt
No exemplo abaixo, é necessário criar um subdomínio no apache (/etc/apache/sites-avaliable/xmpp.seudominio.com.br.conf) para “enganar” o certbot e não precisar de um @_acme.
sudo certbot certonly --apache -d xmpp.seudominio.com.br
Se usar o modo DNS: (acme, mas se vc tiver um apache rodando, lascou, não funciona)
sudo certbot certonly --manual --preferred-challenges dns -d xmpp.seudominio.com.br
Importante: aguarde a propagação total do TXT _acme-challenge antes de prosseguir.
Certificados gerados estarão em:
/etc/letsencrypt/live/xmpp.seudominio.com.br/fullchain.pem
/etc/letsencrypt/live/xmpp.seudominio.com.br/privkey.pem
2. Gerando PKCS12 para importar no Openfire
openssl pkcs12 -export \
-in /etc/letsencrypt/live/xmpp.seudominio.com.br/fullchain.pem \
-inkey /etc/letsencrypt/live/xmpp.seudominio.com.br/privkey.pem \
-out /tmp/openfire.p12 \
-name xmpp-cert \
-passout pass:changeit
3. Backup e Importação no keystore do Openfire
Backup:
sudo cp /usr/share/openfire/resources/security/keystore \
/usr/share/openfire/resources/security/keystore.bak
Importação:
sudo keytool -importkeystore \
-destkeystore /usr/share/openfire/resources/security/keystore \
-deststorepass changeit \
-destkeypass changeit \
-srckeystore /tmp/openfire.p12 \
-srcstoretype PKCS12 \
-srcstorepass changeit \
-alias xmpp-cert \
-noprompt
4. Verificando pasta de armazenamento de arquivos
Acesse o Admin Console:
Configurações do Servidor → Arquivo de Upload HTTP (HTTP File Upload)
Defina um diretório válido e com permissões corretas:
/dados2/Openfire
Certifique-se de que o usuário do serviço Openfire tem permissão total:
sudo chown -R openfire:openfire /dados2/Openfire
5. Acesso via HTTPS na porta 7443
Verifique o acesso:
https://xmpp.seudominio.com.br:7443
Se o certificado estiver correto, o navegador não deve emitir aviso de segurança.
6. Envio de arquivos no Gajim
O erro de CA ocorre quando o Gajim não confia no certificado.
Soluções:
Linux:
sudo cp /etc/letsencrypt/live/xmpp.seudominio.com.br/fullchain.pem /usr/local/share/ca-certificates/xmpp.crt
sudo update-ca-certificates
Windows:
- Converta o
fullchain.pemem.crtse necessário. - Clique com o botão direito no
.crt→ Instalar certificado. - Escolha “Autoridades de Certificação Raiz Confiáveis”.
Reinicie o Gajim e tente novamente o envio de arquivos.
