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).