Bem, eu fiz um monte de coisas e agora funciona, então é um daqueles casos de não saber qual (ais) consertou, mas para o benefício dos outros, aqui está o que eu fiz:
- Adicionar registros SRV ao meu DNS
No console da web de administração do OpenFire, não notei um aviso em Servidor | Gerenciador de Servidores | Informações do servidor: "Nenhum registro SRV do DNS para este host foi encontrado". Debaixo disso, havia muitas informações úteis sobre a necessidade de registros SRV do XMPP, das quais eu nunca tinha ouvido falar antes. Em suma, é um mecanismo para encaminhar o tráfego de um domínio para outro que o XMPP às vezes requer (quando o servidor DNS e XMPP não estão hospedados no mesmo servidor, aparentemente). Algumas coisas a serem observadas: verifique se o formato do registro SRV está correto porque não é óbvio; Usando o Netfirms como meu domínio e provedor de DNS, eu tive que obter seu suporte técnico para adicionar os registros SRV porque dentro do Netfirms, não há como gerenciá-los.
- Em todos os clientes XMPP, alterei as informações da conta.
Especificamente, para as informações de nome de usuário, em vez de usar xmpp.mydomain.com, usei mydomain.com. Por exemplo, para um nome de usuário de joe.blow, eu inseri [email protected] em vez de [email protected]. Não foi minha preferência, mas eu meio que suspeito que isso é o que fez funcionar.
Até hoje, ainda estou confuso sobre todas as propriedades do servidor XMPP: XMPP Domain Name
vs. Server Host Name (FQDN)
. Por que precisa de ambos? Por que não pode simplesmente usar o FQDN?
Eu sei que isso não é sobre a questão, mas ...
Mais uma dica do OpenFire, para o caso de alguém ter dificuldades, como eu, conseguindo acesso seguro ao seu portal de administração na web. Se você estiver usando o Let's Encrypt para seus certificados e tiver a sorte de também estar executando o Apache no mesmo servidor, em vez de tentar obter o OF para aceitar o certificado xmpp.meudominio.com para que possa acessar seu portal de administração via link , você pode usar o Apache como um proxy reverso. É muito mais fácil levantar-se e renovar automaticamente um servidor web Apache com um certificado Let's Encrypt - pelo menos é o que encontrei.
Seu arquivo conf do Apache pode ter esta aparência (incluindo um redirecionamento para http para https):
<IfModule mod_ssl.c>
<IfModule mod_proxy.c>
<VirtualHost *:443>
ServerName xmpp.mydomain.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/xmpp
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine On
SSLCertificateFile /etc/letsencrypt/live/xmpp.mydomain.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/xmpp.mydomain.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateChainFile /etc/letsencrypt/live/xmpp.mydomain.com/chain.pem
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:9090/
ProxyPassReverse / http://127.0.0.1:9090/
</VirtualHost>
</IfModule>
</IfModule>
<VirtualHost *:80>
ServerName xmpp.mydomain.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/xmpp
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https: //%{HTTP_HOST}%{REQUEST_URI} [R,L]
</VirtualHost>