我已为具有CA证书的StartTLS配置了ejabberd服务器。 以下是配置:
{5222, ejabberd_c2s, [
{access, c2s},
{shaper, c2s_shaper},
starttls_required,
{certfile, "/etc/ejabberd/conf/ejabberd.pem"},
{max_stanza_size, 65536}
]},
我的XMPP客户端是使用Smack库在java中开发的。 我希望我的XMPP客户端仅在证书有效时才能与服务器一起使用。但我无法做到。 以下是我的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);
即使我在信任库中提供虚拟证书,它也能成功建立连接。
我错过了什么吗?
答案 0 :(得分:1)
尝试
config.setVerifyRootCAEnabled(true);