Проблема в подключении к StartTls настроен на Constate XMPP Server

StackOverflow https://stackoverflow.com//questions/21016812

Вопрос

Я настроил Ejabberd Server для Starttls с сертификатами CA. Ниже приведена конфигурация:

{5222, ejabberd_c2s, [

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

Мой клиент XMPP был разработан в Java, используя библиотеку Smack. Я хочу, чтобы мой клиент 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);
.

Даже если я предоставлю фиктивный сертификат в Truststore, он успешно создает подключение.

Я что-то пропустил?

Это было полезно?

Решение

попробуйте

config.setVerifyRootCAEnabled(true);
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top