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

Используя 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 ответ

Решение

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

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

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

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

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

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

    sha1   = 540fbfe14671915ee939b3a78b8ce52bf45c8e85
    sha256 = 5916acbdfff8e1474402c75ccba2858c23e93348607d122e4f3106cbed6ab1ff
    

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

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

Другие вопросы по тегам