Рейтинг:0

Как узнать, может ли wget поддерживать новый сертификат LetsEncrypt ISRG Root X1 после истечения срока действия DST Root CA X3

флаг bg

Несколько недель назад (сентябрь 2021 г.) LetsEncrypt изменен способ подписи их сертификатов, что может повлиять на некоторые старые программы и клиенты. У меня есть стандартный веб-сервер Apache (стоковая версия 2.4.41 от Ubuntu 20.04 apt) с несколькими сертификатами letsencrypt.

Некоторые люди сообщают о получении от меня недействительных сертификатов ssl при использовании стандартных инструментов Unix, таких как wget. Я думаю, проблема в том, что их wget не может поддерживать эти новые сертификаты LE.

Как я (и пользователи) могу узнать, действительно ли проблема связана с ними? Есть ли какой-нибудь wget команда, которую могут запустить мои пользователи, которая сообщит мне, поддерживает ли их версия wget эти новые сертификаты? Какую команду я могу дать им для запуска, чтобы они (и я) могли определить, связана ли проблема с ними, а не со мной?

Paul avatar
флаг cn
Все, что я сделал, чтобы понять, что со мной происходит, — это провел тест на Qualys SSL Server test. Он сообщает, какие сертификаты предоставляются сервером, и оттуда выясняет, что у клиента есть какая-то проблема. Взгляните на версию `wget` и доверенное хранилище ОС. Вы также можете использовать `--no-check-certificates`, чтобы отключить функцию в `wget`, но тогда вы отключите возможность проверки сервера, другую половину транспортного шифрования.
dave_thompson_085 avatar
флаг jp
@Paul+ важна версия OpenSSL, используемая _by_ wget (если вообще, как отмечается в ответе), а не версия wget. В Linux и, вероятно, в большинстве Unix проверьте, связывает ли `ldd $(который wget)` `libssl` и `libcrypto` с системными библиотеками, пользовательскими библиотеками или вообще не связывает (статическая ссылка). Во-первых, проверьте версию системных библиотек; для двух других нет последовательного пути.
Paul avatar
флаг cn
@dave_thompson_085 Исторически явно ошибочно: https://stackoverflow.com/questions/30817876/wget-ssl-alert-handshake-failure
dave_thompson_085 avatar
флаг jp
@Paul+, что Q был для SNI, совсем другой проблемы, которая была неправильной в wget и должна была быть исправлена ​​там. Проблема LE/DST в этом вопросе на самом деле является ошибкой OpenSSL, и ее _можно_ исправить, изменив _только_ OpenSSL -- см. https://pastebin.com/ZkdEpL6H -- но при тестировании ** вы правы _also_: wget 1.20.2 up имеет изменение, которое позволяет обойти ошибку OpenSSL**.
Рейтинг:1
флаг cn

Проверяйте свои сертификаты, как и раньше, с помощью тестеров TLS на ваш выбор или просто в браузере.

Попросите пользователей обновить свое клиентское программное обеспечение.

крестообразный знак DST Root CA X3 с увеличенным сроком службы в первую очередь для продления срока службы старых Android-устройств. Конечно, в реализации TLS нет ничего простого. Этот хит ошибка в старой OpenSSL 1.0.2, где это не проверялось должным образом.

Эта проблема с wget требует:

  • Скомпилировано --with-ssl=openssl который не является восходящим потоком по умолчанию
  • Старый конец жизни OpenSSL 1.0.2, который обычно не следует использовать, но некоторые дистрибутивы с долгосрочной поддержкой поддерживают его.

Например, RHEL 7 должен быть затронут. EL7 исправил это, обновив ca-сертификаты, чтобы они больше не содержали просроченный корень.

Еще одна вещь, которую можно попробовать, — это серверная часть, обновив ее с помощью альтернативной цепочки Let’s Encrypt. Удаление корня DST больше не сбивает с толку старый OpenSSL, но старый Android не будет работать.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.