Заставить Пиджина принять неверный сертификат

23

Я получаю следующую ошибку на Pidgin 2.10.10-3.fc20 (libpurple 2.10.10).

Как я могу заставить его принять недействительный сертификат?

(Согласно этому сообщению об ошибке это должно быть возможно).

введите описание изображения здесь

Вот что я сделал:

  • посетил домен в Firefox и экспортировал сертификат
  • импортировал сертификат на инструменты Pidgin -> сертификаты
  • Импортирован сертификат на seahorse(графический интерфейс пользователя gnome keyring)
Этот бразильский парень
источник
Пожалуйста, добавьте версию Ubuntu и источник этой версии Pidgin.
AB
Вы видели это ? Может быть, кто-то мог бы работать с этой информацией ...
Byte Commander
@ByteCommander ссылка, которую вы предоставили, просто макет предложения. Я люблю видеть , что это реализовать, но я не разработчик.
Этот бразильский парень
Мне нужен недействительный сертификат. =)
AB
@AB Вы уже редактировали источник? Если да, я перейду к чему-то еще :)
kos

Ответы:

13

В качестве альтернативы вы можете скачать ssl сертификат вручную. После этого пиджин запускается без проблем. Для загрузки сертификата вы можете использовать утилиту командной строки openssl.

~/.purple/certificates/x509/tls_peers$ openssl s_client -connect YOUR_SERVER:PORTNUMBER  

Когда вышеприведенная команда завершается неудачно с «нет сертификата равноправного узла», возможно, сервер использует STARTTLS вместо SSL. В этом случае используйте следующую команду:

~/.purple/certificates/x509/tls_peers$ openssl s_client -connect YOUR_SERVER:PORTNUMBER -starttls xmpp

Теперь скопируйте часть, начинающуюся с "---- BEGIN CERTIFICATE ----". Если вы распечатываете содержимое файла сертификата, оно выглядит следующим образом:

~/.purple/certificates/x509/tls_peers$ cat jabber.ulm.ccc.de 

-----BEGIN CERTIFICATE-----
MIIFXDCCA0QCCQCa5jxvwccm0DANBgkqhkiG9w0BAQUFADBwMQswCQYDVQQGEwJE
RTEMMAoGA1UEBxMDVWxtMRUwEwYDVQQLEwxDQ0MgRXJmYSBVbG0xGjAYBgNVBAMT
EWphYmJlci51bG0uY2NjLmRlMSAwHgYJKoZIhvcNAQkBFhFqYWJiZXJAdWxtLmNj
...
3EIpMVk3V1djyj0FEuDaG/o+6BTLCiIMiIUFtbpVz8YZChHbv8ObMJ5JpUIkDfKZ
si1YZKpUYwpVXgTCUml67lArx/sq95OQsDSO3fR1Ch0=
-----END CERTIFICATE-----
Мартин
источник
1
...а что потом? где разместить загруженный файл?
Этот бразильский парень
8
Поместите файл в каталог ~ / .purple / сертификаты / x509 / tls_peers /, и важно, чтобы имя файла было DNS-именем jabber-сервера. Поэтому, если ваша учетная запись jabber - user123@jabber.ulm.ccc.de, вам нужно создать файл: ~ / .purple / сертификаты / x509 / tls_peers / jabber.ulm.ccc.de
Мартин,
2
Приведенный выше комментарий @Martin должен быть включен в ответ, так как очень важно сделать эту работу. Обходной путь подтвержден на Kubuntu 15.04 с Pidgin 2.10.9 (libpurple 2.10.9).
Бастьен
11

Оказывается, в Pidgin 2.10.10 есть ошибка с сертификатами (libpurple 2.10.10):

В версии 2.10.10 больше невозможно подключиться к серверу XMPP, который использует самозаверяющий сертификат SSL. Сообщение об ошибке: Сертификат для не может быть проверен. Представленная цепочка сертификатов недействительна.

Соединение возможно, если сертификат сервера уже находится в локальном кэше (.purple \ сертификаты \ x509 \ tls_peers). Если сертификат еще не кэширован (например, после новой установки windows / pidgin), соединение не устанавливается.

Обновление до 2.10.11 устраняет проблему. Если вы используете более старую версию Ubuntu, как я, вы можете использовать PPA (12.04, 14.04 и 14.10)

Этот бразильский парень
источник
2
К сожалению, обновление до pidgin 2.10.11в Ubuntu 15.04не помогает. Я только что проверил это и вижу, что проблема остается нерешенной.
Якобиан
@Jacobian Вы обновились? как Pidgin и libpurple?
Этот бразильский парень
2
Да, это не будет работать для меня, пока я не удалил libpurple: sudo apt-get remove libpurple0а затем переустановилsudo apt-get install pidgin
EoghanM
Такое ощущение, когда через год устаревший PPA на 2 версии выше официального репозитория.
Привет, Ангел,
2

Представляется важным, чтобы имя, которое вы вводите при импорте сертификата через Tools→, Certificatesсоответствовало connect serverнастройке учетной записи XMPP. Это единственный способ заставить его работать на ту же ошибку.

Подключите сервер и имя хоста сертификата должно совпадать

tobigue
источник
1
Добро пожаловать, чтобы спросить Ubuntu! Не могли бы вы уточнить это (например, предоставить пример команды)? Если это хорошо, и вы оставите мне записку, я вернусь и воззвать! ;-)
Fabby
1
@ Спасибо, я добавил скриншот, чтобы сделать его более понятным, никаких команд не требуется.
Tobigue
Редактирование и голосование! ;-)
Fabby
После часов, потраченных на решение, (15:24:43) nss: ERROR -8101: SEC_ERROR_INADEQUATE_CERT_TYPE (15:24:43) nss: subject name not verifiedэто было решением !! Благодарность!!
Маттеолель
2

Другой обходной путь - импортировать имя сервера, указанное в ошибке, например myserver.chat.com . Например:

  1. Откройте браузер Firefox и введите URL:, HTTPS://mysever.chat.comвы получите ошибку:

    Неверная ошибка сертификата

  2. Выбрать, Advanced вариант, затем Add Exception. Откроется всплывающее окно для сертификата.

  3. Затем нажмите Advanced-> Details->Export

    Просмотрщик сертификатов

  4. Сохраните сертификат где-нибудь

  5. Откройте Pidgin, перейдите к Tools-> Certificates->Add Теперь сохраните сертификат с тем же общим именем, что и ошибка в начале.

Наконец, попытайтесь восстановить соединение.

У Мело
источник
Если (работающий) клиент на любом другом компьютере доступен, экспорт сертификата оттуда и импорт его снова, как вы описали (оба с использованием менеджера сертификатов), также работает.
хулиган
2

Простой способ,

  1. Закрыть пиджин
  2. Найдите папку с сертификатами ( Win­dows: %appdata%\.purple) (Linux:/home/<Username>/.purple/certificates/x509/tls_peers )
  3. Удалите все в папке сертификата.
  4. Перезапустите pidgin, и в итоге вы получите новый сертификат, который работает.

PS: пользователи Windows, которые не знакомы с этим, %app­data%просто %appdata%\.purpleвводят в адресной строке и нажимают ввод.

NullPointer
источник
1

Мне удалось обойти проблему с сертификатом, вручную заменив его сохраненной копией пару раз. Перестал работать после этого, и обновление до 2.11, похоже, не помогло.

Если вы собираете из исходного кода, вам стоит попробовать изменить исходный код для libpurple / certificate.c; перемещая проверку PURPLE_CERTIFICATE_FATALS_MASK под проверкой PURPLE_CERTIFICATE_NON_FATALS_MASK, чтобы запросить пользователя, но разрешить сертификат, если он принят. Наверное, не самая безопасная вещь, но у меня это сработало.

user591856
источник
1

Вы можете использовать Pidgin-developers PPA для ее решения. Я установил пакеты pidgin и libpurple из этого источника, и это решило мою проблему с доступом к ресурсам Lync 2013. Теперь он может автоматически разрешать сертификаты (показывать диалог, чтобы принять или отклонить неизвестный сертификат). Вы пробовали это? Если вы использовали 15.04, существует также обходной путь для загрузки нескольких пакетов и замены старых на новые. Я уже 15.04 проверял, все работает.

user3417815
источник
Было бы полезно, если бы вы могли поделиться, какие «несколько пакетов» загрузить и что заменить. Подвох в том, что у меня теперь 15.04 и pidgin 2.10.11, но все еще есть это пресловутое сообщение об ошибке о сертификатах.
Якобиан
Все эти пакеты в pidgin repo, вы найдете их при попытке установить pidgin и libourple ИЛИ вы можете добавить pidgin repo с предыдущей версией дистрибутива к sources.list и сделать обычную установку, он установит все зависимости автоматически, но, пожалуйста, проверьте PPA pidgin , может быть, это уже есть версия для Vivid
user3417815
Ну, сообщения о сертификатах все еще существуют в pidgin, но теперь вы сможете принимать сертификат для каждого сеанса
user3417815
Итак, если они уже есть в репо, почему они не устанавливаются автоматически? И можете ли вы назвать некоторые из этих пакетов, чтобы я мог их найти? И не могли бы вы поделиться тем, как эти пакеты должны быть установлены (отдельно от pidgin или с использованием ./configure или еще?), Иначе «обычная установка» звучит неопределенно.
Якобиан
Как я уже сказал, это PPA, но вы можете проверить его и, вероятно, обнаружите, что он не имеет сборок, особенно для 15.04. Поэтому, если вы добавите его как PPA, вы, вероятно, не сможете установить какие-либо пакеты оттуда. Это имеет смысл? Извините, проверил этот PPA около месяца назад, пока еще не было билдов для ярких.
user3417815
0

Заставить pidgin скачивать новые сертификаты.

rm ~/.purple/certificates/x509/tls_peers/*

Закройте и снова откройте пиджин.

ls ~/.purple/certificates/x509/tls_peers/*

Теперь в этом списке должны быть загружены новые сертификаты.

Binoy
источник