Domanda

Ho configurato il server EJABBERD configurato per StartTTL con certificati CA. Di seguito è riportata la configurazione:

{5222, ejabberd_c2s, [

            {access, c2s}, 
            {shaper, c2s_shaper},
                    starttls_required,
                    {certfile, "/etc/ejabberd/conf/ejabberd.pem"},
                    {max_stanza_size, 65536}
           ]},
.

Il mio client XMPP è stato sviluppato in Java utilizzando Biblioteca SMACK. Voglio che il mio client XMPP funzioni con il server solo se il certificato è valido.Ma non sono in grado di farlo. Di seguito è riportato il mio codice client XMPP

ConnectionConfiguration config = new ConnectionConfiguration(host, port, serviceName);
config.setSASLAuthenticationEnabled(true);
config.setSecurityMode(ConnectionConfiguration.SecurityMode.enabled);
config.setCompressionEnabled(true); 
config.setTruststorePath(trustStorePath);
config.setTruststorePassword(trustStorePwd);
config.setExpiredCertificatesCheckEnabled(true);
config.setNotMatchingDomainCheckEnabled(true);
config.setVerifyChainEnabled(true);
.

Anche se fornisco un certificato fittizio nel truststore è effettuato con successo la connessione.

Ho perso qualcosa?

È stato utile?

Soluzione

Prova

config.setVerifyRootCAEnabled(true);
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top