RHEL8 обновление до RHEL9 с помощью Leapp: предупреждение: Подпись не поддерживается. Алгоритм хеширования SHA1 недоступен.

Вопрос или проблема

После обновления некоторых серверов с RHEL8 до RHEL9 с использованием утилиты Leapp после обновления появились предупреждения в dnf и rpm: предупреждение: Подпись не поддерживается. Хэш-алгоритм SHA1 недоступен.

Каждый раз, когда я выполнял любую из этих команд, я получал эти предупреждения:

[root@web ~]# rpm -q kernel
предупреждение: Подпись не поддерживается. Хэш-алгоритм SHA1 недоступен.
предупреждение: Подпись не поддерживается. Хэш-алгоритм SHA1 недоступен.
kernel-5.14.0-362.18.1.el9_3.x86_64
kernel-5.14.0-427.18.1.el9_4.x86_64
kernel-5.14.0-427.20.1.el9_4.x86_64
[root@web ~]# dnf repolist
предупреждение: Подпись не поддерживается. Хэш-алгоритм SHA1 недоступен.
предупреждение: Подпись не поддерживается. Хэш-алгоритм SHA1 недоступен.
Обновление репозиториев управления подписками.
идентификатор репозитория                  имя репозитория
rhel-9-for-x86_64-appstream-rpms Red Hat Enterprise Linux 9 для x86_64 - AppStream (RPMs)
rhel-9-for-x86_64-baseos-rpms    Red Hat Enterprise Linux 9 для x86_64 - BaseOS (RPMs)

Я не знаю, из какого пакета или что вызывает эту проблему. Большинство доступных решений в Интернете включает повторное включение SHA1, что по сути не является решением.

Также все пакеты помечены как el9, за исключением некоторых пакетов gpg-pubkey, поэтому я думаю, что ничего из RHEL9 нет.

[root@web ~]# rpm -qa | grep -v el9
предупреждение: Подпись не поддерживается. Хэш-алгоритм SHA1 недоступен.
предупреждение: Подпись не поддерживается. Хэш-алгоритм SHA1 недоступен.
gpg-pubkey-fd431d51-4ae0493b
gpg-pubkey-a14fe591-578876fd
gpg-pubkey-d4082792-5b32db75

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

Запросите все пакеты на их подпись. Любой может добавить “el9” в строку выпуска, а не только RHEL.

rpm -qa --qf '%{NAME}-%{VERSION}-%{RELEASE} %{SIGPGP:pgpsig} %{SIGGPG:pgpsig}\n' | grep SHA1

Старые SHA1, вероятно, из репозиториев третьих сторон. RHEL и Fedora уже какое-то время используют SHA256 или лучше.

Если вы найдете что-то, убедитесь, что упаковщик осведомлён и работает над подписями, совместимыми с RHEL 9.

Удалите любые ненужные пакеты. Обходите необходимые пакеты с слабыми подписями, подписывая их сами. Скачайте, проверьте, rpmsign --resign, добавьте в локальный репозиторий. И, конечно, этот репозиторий должен проверяться с помощью gpgcheck=1 и gpgkey. Требуется всего лишь один или два хоста с устаревшими криптографическими политиками, а не все хосты.

dnf install --setopt=tsflags=nocrypto является плохим обходным решением, потому что вам необходимо предоставлять его каждый раз, иначе rpm выдаст ошибку. И отсутствие проверки подписи хуже, чем устаревшая проверка подписи.

Хорошо, по крайней мере на всех моих серверах это решило проблему:

rpm -e `rpm -qa | grep gpg-pubkey | xargs`

Эта команда принудительно удалит все пакеты gpg-pubkey. И это кажется приемлемым, потому что если ключи отсутствуют, они будут переимпортированы при следующем dnf. Я протестировал это на более чем 20 серверах, которые были обновлены с RHEL8 с помощью leapp.

Ответ или решение

Для решения проблемы с предупреждениями «Signature not supported. Hash algorithm SHA1 not available» после обновления серверов с RHEL8 до RHEL9 с использованием утилиты Leapp, необходимо провести несколько шагов анализа и дальнейших действий.

  1. Понимание проблемы:
    После обновления некоторых серверов, когда вы пытаетесь выполнить команды dnf или rpm, возникает предупреждение о неподдерживаемых сигнатурах, использующих алгоритм SHA1. Важно отметить, что RHEL9 переходит на более современные и безопасные алгоритмы, такие как SHA256. Таким образом, старые пакеты, подписанные SHA1, больше не принимаются системой.

  2. Определение источника проблемы:
    Первым шагом в диагностике является проверка всех пакетов и их сигнатур. Используйте следующую команду, чтобы найти все пакеты, которые подписаны с использованием SHA1:

    rpm -qa --qf '%{NAME}-%{VERSION}-%{RELEASE} %{SIGPGP:pgpsig} %{SIGGPG:pgpsig}\n' | grep SHA1

    Это поможет определить, какие именно пакеты вызывают предупреждения. Наиболее вероятными кандидатами будут старые ключи GPG (gpg-pubkey), которые могли быть установлены ранее и теперь не соответствуют требованиям новой версии RHEL.

  3. Удаление устаревших ключей GPG:
    Если получается, что основными источниками предупреждений являются пакеты gpg-pubkey, вы можете их удалить. Это не вызовет проблем, так как они будут восстановлены автоматически при следующем выполнении команды dnf. Для их удаления выполните следующую команду:

    rpm -e `rpm -qa | grep gpg-pubkey | xargs`
  4. Проверка и восстановление:
    После выполнения вышеуказанной команды, стоит проверить, что предупреждения больше не появляются. При следующем выполнении команд dnf или rpm вероятно, что новые ключи будут автоматически загружены и установлены.

  5. Мониторинг и уведомление:
    Если вы используете сторонние репозитории, рекомендуется уведомить поставщиков о необходимости поддержки более современных алгоритмов подписи. Это поможет избежать повторения подобных проблем в будущем.

  6. Заключение:
    Следуя этим рекомендациям, вы сможете устранить предупреждения, связанные с неподдерживаемыми сигнатурами и улучшить безопасность вашей системы. Всегда важно следить за обновлениями репозиториев и поддерживать актуальность используемых пакетов и их сигнатур.

Если у вас остались вопросы или требуется более детальная информация по какому-либо пункту, не стесняйтесь обращаться за помощью.

Оцените материал
Добавить комментарий

Капча загружается...