Я получаю следующую ошибку в Pidgin 2.10.10-3.fc20 (libpurple 2.10.10).
Как я могу заставить его принять недопустимый сертификат?
(В соответствии с этим сообщением об ошибке он должен быть способен).
Вот что я сделал:
посетил домен на Firefox и экспортировал сертификат, импортированный сертификат на инструменты Pidgin-> сертификаты Импортировал сертификат в seahorse (графический интерфейс gnome keyring)В качестве альтернативы вы можете загрузить сертификат ssl вручную. Впоследствии пиджин начинает без проблем. Чтобы загрузить сертификат, вы можете использовать утилиту командной строки openssl.
~/.purple/certificates/x509/tls_peers$ openssl s_client -connect YOUR_SERVER:PORTNUMBER
Когда вышеприведенная команда завершилась неудачей с «отсутствующим сертификатом peer», возможно, сервер использует 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-----
Другим обходным решением является импорт имени сервера, указанного в ошибке, например myserver.chat.com. Например:
Откройте браузер Firefox и поместите URL-адрес: HTTPS://mysever.chat.com, вы получите сообщение об ошибке: выберите опцию Advanced, затем Add Exception. Открывается всплывающее окно для сертификата. Затем нажмите Advanced -> Details -> Export Сохраните сертификат где-нибудь. Откройте Pidgin, перейдите к Tools -> Certificates -> Add. Теперь сохраните сертификат с тем же общим именем, что и ошибка в начало.Наконец, попробуйте снова подключиться.
Вы можете использовать Pidgin-разработчиков PPA для его решения. Я установил пакеты pidgin и libpurple из этого источника, и он решил мою проблему с доступом к ресурсам Lync 2013, теперь он может автоматически разрешать ceritificates (показать диалог, чтобы принять или отклонить неизвестный сертификат). Вы пробовали это? Если вы использовали 15.04, есть также обходное решение для загрузки нескольких пакетов и замены старых новыми. Я тестировал его уже 15.04, он работает.
Кажется важным, чтобы имя, которое вы вводите при импорте сертификата через Инструменты → Сертификаты, соответствует connect server в конфигурации учетной записи XMPP. Это единственный способ заставить его работать для той же ошибки.
Мне удалось обойти проблему с сертификатом, вручную заменив ее сохраненной копией пару раз. После этого перестала работать, и обновление до 2.11, похоже, не помогло.
Если вы создаете исходный код, попробуйте изменить исходный код для libpurple / certificates.c; перемещая проверку PURPLE_CERTIFICATE_FATALS_MASK с помощью проверки PURPLE_CERTIFICATE_NON_FATALS_MASK, чтобы запросить пользователя, но разрешить сертификат, если он принят. Наверное, это не самая безопасная вещь, но я работал на меня.
Легкий путь,
Закрыть Pidgin Найдите папку с сертификатами (Windows: %appdata%\.purple) (Linux: /home/<Username>/.purple/certificates/x509/tls_peers) Удалите все в папке сертификата. Перезапустите pidgin, и в итоге вы должны получить новый сертификат, который работает.P.S: Пользователи Windows, которые не знакомы с %appdata%, просто введите %appdata%\.purple в свою адресную строку и нажмите enter.
Заставить pidgin загрузить новые сертификаты.
rm ~/.purple/certificates/x509/tls_peers/*
Закрыть и снова открыть pidgin.
ls ~/.purple/certificates/x509/tls_peers/*
Теперь это должно отображать только что загруженные сертификаты.