Pidgin для XMPP - сбой рукопожатия SSL

1702
dGo

Я установил последнюю версию Ubuntu 18.04 и пытаюсь подключиться к нашему внутреннему XMPP-серверу (который довольно старый и у меня нет доступа) с помощью Pidgin, как я это делал раньше.

Но я не могу подключиться ... Получаю SSL Handshake Failedошибку.

Вот что я получаю в окне отладки:

(10:37:11) account: Connecting to account d.goosens@%%SERVER_NAME%%/Spark 2.6.3. (10:37:11) connection: Connecting. gc = 0x55e3f7cdca10 (10:37:11) dnsquery: Performing DNS lookup for %%SERVER_IP%% (10:37:11) dnsquery: IP resolved for %%SERVER_IP%% (10:37:11) proxy: Attempting connection to %%SERVER_IP%% (10:37:11) proxy: Connecting to %%SERVER_IP%%:5222 with no proxy (10:37:11) proxy: Connection in progress (10:37:11) proxy: Connecting to %%SERVER_IP%%:5222. (10:37:11) proxy: Connected to %%SERVER_IP%%:5222. (10:37:11) jabber: Sending (d.goosens@%%SERVER_NAME%%/Spark 2.6.3): <?xml version='1.0' ?> (10:37:11) jabber: Sending (d.goosens@%%SERVER_NAME%%/Spark 2.6.3): <stream:stream to='%%SERVER_NAME%%' xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' version='1.0'> (10:37:11) jabber: Recv (177): <?xml version='1.0' encoding='UTF-8'?><stream:stream xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client" from="%%SERVER_NAME%%" id="a1c57c52" xml:lang="en" version="1.0"> (10:37:11) jabber: Recv (486): <stream:features><starttls xmlns="urn:ietf:params:xml:ns:xmpp-tls"></starttls><mechanisms xmlns="urn:ietf:params:xml:ns:xmpp-sasl"><mechanism>DIGEST-MD5</mechanism><mechanism>PLAIN</mechanism><mechanism>ANONYMOUS</mechanism><mechanism>CRAM-MD5</mechanism></mechanisms><compression xmlns="http://jabber.org/features/compress"><method>zlib</method></compression><auth xmlns="http://jabber.org/features/iq-auth"/><register xmlns="http://jabber.org/features/iq-register"/></stream:features> (10:37:11) jabber: Sending (d.goosens@%%SERVER_NAME%%/Spark 2.6.3): <starttls xmlns='urn:ietf:params:xml:ns:xmpp-tls'/> (10:37:11) jabber: Recv (50): <proceed xmlns="urn:ietf:params:xml:ns:xmpp-tls"/> (10:37:11) nss: Handshake failed (-12279) (10:37:11) connection: Connection error on 0x55e3f7cdca10 (reason: 5 description: SSL Handshake Failed) (10:37:11) account: Disconnecting account d.goosens@%%SERVER_NAME%%/Spark 2.6.3 (0x55e3f700e310) (10:37:11) connection: Disconnecting connection 0x55e3f7cdca10 (10:37:11) connection: Destroying connection 0x55e3f7cdca10 (10:37:12) util: Writing file prefs.xml to directory /home/dgoosens/.purple (10:37:12) util: Writing file /home/dgoosens/.purple/prefs.xml (заменены SERVER_NAME и SERVER_IP)

Перепробовал все возможные настройки аккаунта ... но вроде ничего не работает ...

Какие-либо предложения ?


РЕДАКТИРОВАТЬ (2018-05-07)

Похоже, мой сервер использует устаревший сертификат STARTTLS.
Я следовал инструкциям здесь: https://askubuntu.com/questions/610585/force-pidgin-to-acept-an-invalid-certificate

Скачал сертификат с opensslи импортировал в Pidgin ...
Но это ничего не меняет ... все равно получая ту же отладочную информацию.
Так что я думаю, что я не могу правильно настроить приложение

Есть предложения как с этим бороться?

0
Итак, вы настроили клиент для использования сертификата TLS. Использует ли сервер тот же сертификат? Какие шифры вы включили, когда создали этот самозаверяющий сертификат. Вы должны отредактировать свой вопрос, чтобы включить эту важную информацию, чтобы на ваш вопрос можно было ответить. Ramhound 5 лет назад 0
не настроил ни одного сертификата TLS ... и, насколько я вижу, в Pidgin нет способа сделать это. Просто запросил «шифрование, если доступно», и я почти уверен, что его нет. Кроме того, с такой же настройкой в ​​Thunderbird или Psi (другой клиент XMPP) все работает нормально ... dGo 5 лет назад 0
Возможно, вы не настроили его, но не изменили тот факт, что ваша текущая конфигурация настроена на использование сертификата TLS на основе содержимого документа xml, а именно: * xmpp-tls * Ramhound 5 лет назад 0
спасибо @Ramhound обновил мой вопрос информацией, которую мне удалось собрать ... но боюсь, что это тебе не поможет dGo 5 лет назад 0
@ dGo похоже, что сервер XMPP не в хорошем состоянии. Я предполагаю, что это может быть больше, чем сертификат, но, возможно, связано с версиями SSL, которые поддерживает сервер. Более новые операционные системы, такие как Ubuntu 18.04, не будут использовать небезопасные версии протокола, которые могут объяснить вашу проблему. Чтобы окончательно определить, является ли это проблемой, похоже, что потребуется захват пакета от Wireshark (сообщение журнала от Pidgin недостаточно подробное, чтобы указать причину сбоя рукопожатия). MattJ 5 лет назад 0
О, я точно знаю, что он не очень хорошо поддерживается ... Если кто-то не подскажет мне, как настроить Pidgin для работы без шифрования, я думаю, что я просто остановлюсь на Thunderbird, чтобы использовать его на данный момент. dGo 5 лет назад 0

2 ответа на вопрос

1
EionRobb

Отладочное сообщение (10:37:11) nss: Handshake failed (-12279)является ключевым здесь. Из https://www-archive.mozilla.org/projects/security/pki/nss/ref/ssl/sslerr.html это относится к:

SSL_ERROR_UNSUPPORTED_VERSION -12279 "Пир использует неподдерживаемую версию протокола безопасности."

В клиентском сокете это означает, что удаленный сервер попытался договориться об использовании версии SSL, которая не поддерживается библиотекой NSS, возможно, это неверный номер версии. В сокете сервера это означает, что удаленный клиент запросил использование версии SSL, более старой, чем версия 2.

Попробуйте использовать плагин NSS Preferences (из списка друзей, Инструменты-> Плагины), чтобы изменить минимальную версию TLS / SSL на достаточно низкую, которую поддерживает сервер.

спасибо ... я уже установил это на 1.0 и проверил все шифры на ... начинаю думать, что это не pidgin, а лежащая в основе реализация Python open_ssl ... dGo 5 лет назад 0
-1
Dr Deo

Pidgin требует от вас установить сертификат на сервере. Например, используя ejabberd, вы должны отредактировать ejabberd.yml и добавить certfileопцию

listen: - port: 5222 ip: "::" module: ejabberd_c2s certfile: "c:/ejabberdserver/server_new.pem" 

Похожие вопросы