WeeChat подключается к IRC-серверу только через SSL, если опция ssl_verify отключена

568
Nadim Hussami

Используя WeeChat через терминал (в Arch Linux), я могу подключиться к серверу Freenode с помощью SSL. Нет проблем там.

Но если я пытаюсь подключиться к некоторым серверам IRC с помощью SSL (например, ircs.overthewire.org), WeeChat выдает следующие ошибки:

gnutls: peer's certificate is NOT trusted gnutls: peer's certificate issuer is unknown irc: TLS handshake failed irc: error: Error in the certificate. 

Подключение к таким серверам с помощью SSL работает только в том случае, если я сделаю следующее в соответствии с рекомендациями из часто задаваемых вопросов WeeChat :

/set irc.server.example.ssl_verify off 

Тем не менее, в том же FAQ говорится, что я должен быть осторожен, так как это делает его менее безопасным.

Это что-то, что я могу исправить, или это проблема, с которой мне приходится жить для некоторых серверов IRC?

1

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

1
grawity

Здесь TLS / SSL работает так же, как и с HTTPS в веб-браузерах. Если сертификат сервера действителен, вы можете получить доступ к веб-сайту - если это не так, вы получите страшное предупреждение от браузера (клиента), потому что у него нет возможности узнать, является ли сбой проверки результатом подражания сервера или это безобидная неправильная настройка на сайте администратора.

(И, к сожалению, большинство операторов IRC-серверов не заботятся о том, чтобы поддерживать свои сертификаты TLS в актуальном состоянии или даже вообще получать действительные сертификаты.)

В этом случае ircs.overthewire.org:6697имеет сертификат TLS, который, по крайней мере, раньше был действительным, но его эмитент (StartCom Ltd.) больше не пользуется доверием большинства систем из-за различных ошибок. Вы получаете сообщение «эмитент неизвестен», потому что в вашей ОС больше не установлен сертификат корневого CA StartCom.

У вас есть два варианта:

  • Вместо использования проверки на основе CA, скажите Weechat принять этот конкретный сертификат, потому что вы проверили его с помощью другого метода. (В основном метод, используемый SSH.) Для этого установите параметр для отпечатка пальца SHA-256 сертификата (или менее защищенного SHA-1).irc.server.example.ssl_fingerprint

    Отпечатки сертификата, предлагаемые в настоящее время сервером:

    sha1 = 540fbfe14671915ee939b3a78b8ce52bf45c8e85 sha256 = 5916acbdfff8e1474402c75ccba2858c23e93348607d122e4f3106cbed6ab1ff 

    Это будет работать до тех пор, пока операторы сервера не изменят сертификат, после чего вам придется либо обновить опцию новыми отпечатками пальцев, либо попытать счастья при ssl_verify = onповторном использовании .

  • Не рекомендуется: Загрузите корневой CA StartCom и отметьте его как доверенный в вашей ОС (или, по крайней мере, в Weechat).

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