Поделиться через


Устранение неполадок с сертификатом RHUI в Azure

Область применения: ✔️ виртуальные машины Linux

В этой статье рассматриваются распространенные проблемы в инфраструктуре обновления Red Hat (RHUI), вызванные истекшим сроком действия или отсутствием сертификатов ПРОТОКОЛА TLS или SSL.

Необходимые компоненты

Внимание

Платформа RHUI предназначена для работы только с образами с оплатой по мере использования. Вы вместо этого используете пользовательские или золотые образы (также известные как принцип собственной подписки (BYOS)? В этом случае система должна быть подключена к Диспетчеру подписок Red Hat (RHSM) или Спутнику для получения обновлений. Дополнительные сведения см. в разделе Регистрация и подписка системы RHEL на клиентский портал Red Hat с помощью RHSM.

Примечание.

  • Начиная с 12 октября 2023 года все клиенты с оплатой по мере использования (PAYG) были направлены на IP-адреса RHUI-4 на этапах. IP-адреса RHUI-3 остаются доступными для постоянных обновлений, но будут удалены в будущем. Чтобы обеспечить непрерывный доступ к пакетам и обновлениям, необходимо обновить существующие маршруты и правила, разрешающие доступ к IP-адресам RHUI-3, чтобы включить IP-адреса RHUI-4. Однако для продолжения получения обновлений в течение этого переходного периода не удаляйте IP-адреса RHUI-3.
  • Начиная с января 2020 года новые образы Azure для государственных организаций AZURE начали использовать общедоступные IP-адреса, упомянутые ранее в заголовке Azure Global.

Причина 1. Срок действия сертификата клиента RHUI истек

Срок действия сертификатов Azure RHUI обычно истекает каждые два года. Если вы используете старый образ виртуальной машины RHEL, например RHEL версии 7.4 (URN образа: RedHat:RHEL:7.4:7.4.2018010506), вы испытываете ухудшение подключения к RHUI из-за просроченного сертификата клиента TLS/SSL. Например, вы можете получить одно из следующих сообщений об ошибках:

  • "Ssl-одноранговый узел отклонил сертификат по истечении срока действия"

  • Ошибка: не удается получить метаданные репозитория (repomd.xml) для репозитория:_... Проверьте его путь и повторите попытку"

Необходимо применить процесс, чтобы избежать истечения срока действия сертификата в старых образах или изображениях, созданных непосредственно перед датой истечения срока действия сертификата.

Решение 1. Обновление клиентского пакета RHUI

Чтобы получить доступ к репозиториям RHEL в системах с оплатой по мере использования в облачных средах, используйте RHUI. В качестве поставщика облачных служб Azure может создавать и публиковать более новые версии RPM конфигурации клиента в любое время, например для следующих задач:

  • Предоставление доступа к новому репозиторию
  • Обновление сертификатов
  • Внесение других изменений в упаковку

В этой ситуации необходимо установить новый пакет RHUI в системе. Этот пакет имеет обновленный сертификат. Чтобы обновить пакет RHUI, выполните команду yum :

sudo yum update -y --disablerepo='*' --enablerepo='*microsoft*'

Команда sudo yum update также может обновить пакет сертификата клиента (в зависимости от версии RHEL). Это верно, даже если результат команды содержит те же ошибки SSL-сертификата с истекшим сроком действия, которые отображаются для других репозиториев. В случае успешного обновления вам нужно восстановить нормальное подключение к другим репозиториям RHUI, чтобы иметь возможность успешного выполнения sudo yum update повторно.

Если при запуске yum updateвозникает ошибка "404", попробуйте выполнить следующие команды, чтобы обновить кэш yum:

sudo yum clean all
sudo yum makecache

Причина 2. Отсутствует сертификат RHUI

Виртуальная машина Azure Red Hat Linux уже установлена в пакете RHUI Azure. Однако сертификат отсутствует в каталоге /etc/pki/rhui/product/ .

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

sudo yum install <package-name>
Red Hat Enterprise Linux X for x86_64 - XXXX  0.0  B/s |   0  B     00:00  
Errors during downloading metadata for repository 'rhel-X-for-x86_64-XXXX-eus-rhui-rpms':  
  - Curl error (58): Problem with the local SSL certificate for https://rhui-3.microsoft.com/pulp/repos/content/eus/rhel8/rhui/X.X/x86_64/XXXXX/os/repodata/repomd.xml [could not load PEM client certificate, OpenSSL error error:02001002:system library:fopen:No such file or directory, (no key found, wrong pass phrase, or wrong file format?)]

Решение 2. Переустановите пакет EUS, не EUS или SAP RHUI

Переустановите соответствующий пакет RHUI, чтобы повторно создать отсутствующие сертификаты в правильном расположении.

Все команды, описанные в следующих шагах, должны выполняться с помощью корневых привилегий или указания sudo:

  1. Убедитесь, что rhui-azure установлен пакет (EUSилиnon-EUSSAP/E4S) . Для этого выполните следующую команду:

    sudo rpm -qa | grep -i azure
    
    rhui-azure-rhelX-<>-X.X-XXX.noarch
    

    Дополнительные сведения о расширенной поддержке обновлений (EUS) или пакетах RHUI, отличных от EUS, см. в следующих разделах.

    Тип пакета Установить связь
    Пакеты RHUI EUS Образы Red Hat, подключенные к репозиториям EUS
    Пакеты RHUI, отличные от EUS Образы Red Hat, подключенные к репозиториям, не связанным с EUS
    Обновления служб для подписок SAP Solutions (SAP/E4S) RHUI Образы Red Hat, подключенные к репозиториям SAP/E4S
  2. Убедитесь, что сертификат существует:

    sudo ls -l /etc/pki/rhui/product/
    

    Примечание.

    В этом сценарии вы обнаружите, что файл отсутствует.

  3. Переустановите соответствующий rhui-azure пакет, выполнив yum reinstall команду:

    sudo yum reinstall $(rpm -qa | grep -i rhui-azure) --disablerepo=* --enablerepo="*microsoft*"
    
  4. EUS Если установлен или E4S установлен репозиторий, заблокируйте releasever переменную:

    sudo echo $(. /etc/os-release && echo $VERSION_ID) > /etc/yum/vars/releasever
    
  5. Убедитесь, что сертификат существует, выполнив ls команду еще раз. Теперь должен быть указан файл сертификата:

    sudo ls -l /etc/pki/rhui/product/
    

Причина 3. Отсутствует пакет RHUI

Пакет RHUI EUS, отличный от EUS или SAP/E4S, отсутствует на виртуальной машине Red Hat, но файлы конфигурации репозитория по-прежнему существуют в каталоге /etc/yum.repos.d/.

При попытке установить или обновить пакет вы получите следующее сообщение об ошибке:

sudo yum install <package-name>  
Red Hat Enterprise Linux X for x86_64 - XXXX  0.0  B/s |   0  B     00:00  
Errors during downloading metadata for repository 'rhel-X-for-x86_64-XXXX-XXX-rhui-rpms':  
  - Curl error (58): Problem with the local SSL certificate for https://rhui-3.microsoft.com/pulp/repos/content/eus/rhel8/rhui/X.X/x86_64/XXXXX/os/repodata/repomd.xml [could not load PEM client certificate, OpenSSL error error:02001002:system library:fopen:No such file or directory, (no key found, wrong pass phrase, or wrong file format?)]

Решение 3. Установка пакета RHUI ДЛЯ EUS, не euS или SAP/E4S RHUI

Установите отсутствующий пакет RHUI для EUS, non-EUS или SAP/E4S.

Все следующие команды должны выполняться с помощью корневых привилегий или указания sudo.

Установка пакета RHUI EUS

  1. Выполните команду yum install, чтобы установить пакет rhui-azure-rhel7-eus.

    sudo yum --config='https://rhelimage.blob.core.windows.net/repositories/rhui-microsoft-azure-rhel7-eus.config' install 'rhui-azure-rhel7-eus'
    
  2. Блокировка переменной releasever :

    sudo echo $(. /etc/os-release && echo $VERSION_ID) > /etc/yum/vars/releasever
    
  3. Убедитесь, что соответствующие репозитории доступны и не отображают ошибок. Для этого выполните yum repolist команду:

    sudo yum repolist all
    

Примечание.

Если вы используете прокси-сервер в /etc/yum.conf или /etc/dnf.conf, команда не будет работать, yum --config='https://rhelimage.blob.core.windows.net/repositories/rhui-x-x-x-x install rhui-azure-rhel-X-X-X так как она не включает параметры прокси-сервера. В этом случае используйте следующие команды:

sudo wget https://rhelimage.blob.core.windows.net/repositories/rhui-microsoft-azure-rhelX-X-X-X.config
sudo mv rhui-microsoft-azure-rhelX-X-X-X.config /etc/yum.repos.d
sudo yum install rhui-azure-rhel-X-X-X

Замените rhui-microsoft-azure-rhelX-X-X-X фактические значения и rhui-azure-rhel-X-X-X замените их соответствующими значениями.

Установка пакета RHUI, отличного от EUS

  1. Удалите файл выпуска, если он существует.

    sudo rm /etc/yum/vars/releasever
    
  2. rhui-azure-rhel7 Установите пакет, выполнив yum install команду:

    sudo yum --config='https://rhelimage.blob.core.windows.net/repositories/rhui-microsoft-azure-rhel7.config' install 'rhui-azure-rhel7'
    
  3. Убедитесь, что соответствующие репозитории доступны и не отображают ошибок. Для этого выполните yum repolist команду:

    sudo yum repolist all
    

Примечание.

Если вы используете прокси-сервер в /etc/yum.conf или /etc/dnf.conf, команда не будет работать, yum --config='https://rhelimage.blob.core.windows.net/repositories/rhui-x-x-x-x install rhui-azure-rhel-X-X-X так как она не включает параметры прокси-сервера. В этом случае используйте следующие команды:

sudo wget https://rhelimage.blob.core.windows.net/repositories/rhui-microsoft-azure-rhelX-X-X-X.config
sudo mv rhui-microsoft-azure-rhelX-X-X-X.config /etc/yum.repos.d
sudo yum install rhui-azure-rhel-X-X-X

Замените rhui-microsoft-azure-rhelX-X-X-X фактические значения и rhui-azure-rhel-X-X-X замените их соответствующими значениями.

Установка пакета RHEL 7 SAP/E4S/HANA RHUI

Перейдите на вкладку типа образа SAP, чтобы просмотреть соответствующие инструкции.

Следующие действия применяются, если версия ОС более ранняя, чем RHEL 7.9 , и виртуальная машина была создана с помощью RHEL-SAP-APPS образа предложения.

  1. rhui-azure-rhel7-sapapps Установите пакет, выполнив yum install команду:

    sudo yum --config='https://rhelimage.blob.core.windows.net/repositories/rhui-microsoft-azure-rhel7-sapapps.config' install rhui-azure-rhel7-sapapps
    
  2. Блокировка переменной releasever :

    sudo echo $(. /etc/os-release && echo $VERSION_ID) > /etc/yum/vars/releasever
    
  3. Убедитесь, что соответствующие репозитории доступны и не отображают ошибок. Для этого выполните yum repolist команду:

    sudo yum repolist all
    

Примечание.

Если вы используете прокси-сервер в /etc/yum.conf или /etc/dnf.conf, команда не будет работать, yum --config='https://rhelimage.blob.core.windows.net/repositories/rhui-x-x-x-x install rhui-azure-rhel-X-X-X так как она не включает параметры прокси-сервера. В этом случае используйте следующие команды:

sudo wget https://rhelimage.blob.core.windows.net/repositories/rhui-microsoft-azure-rhelX-X-X-X.config
sudo mv rhui-microsoft-azure-rhelX-X-X-X.config /etc/yum.repos.d
sudo yum install rhui-azure-rhel-X-X-X

Замените rhui-microsoft-azure-rhelX-X-X-X фактические значения и rhui-azure-rhel-X-X-X замените их соответствующими значениями.

Установка пакета RHEL 8 SAP/E4S/HANA RHUI

Перейдите на вкладку типа образа SAP, чтобы просмотреть соответствующие инструкции.

Следующие действия применяются, если версия ОС более ранняя, чем последняя версия, поддерживаемая SAP, RHEL 8.X и виртуальная машина была создана с помощью RHEL-SAP-APPS образа предложения.

  1. rhui-azure-rhel8-sapapps Установите пакет, выполнив команду установки dnf:

    sudo dnf --config='https://rhelimage.blob.core.windows.net/repositories/rhui-microsoft-azure-rhel8-sapapps.config' install rhui-azure-rhel8-sapapps
    
  2. Блокировка переменной releasever :

    sudo echo $(. /etc/os-release && echo $VERSION_ID) > /etc/dnf/vars/releasever
    
  3. Убедитесь, что соответствующие репозитории доступны и не отображают ошибок. Для этого выполните yum repolist команду:

    sudo dnf repolist all
    

Примечание.

Если вы используете прокси-сервер в /etc/yum.conf или /etc/dnf.conf, команда не будет работать, yum --config='https://rhelimage.blob.core.windows.net/repositories/rhui-x-x-x-x install rhui-azure-rhel-X-X-X так как она не включает параметры прокси-сервера. В этом случае используйте следующие команды:

sudo wget https://rhelimage.blob.core.windows.net/repositories/rhui-microsoft-azure-rhelX-X-X-X.config
sudo mv rhui-microsoft-azure-rhelX-X-X-X.config /etc/yum.repos.d
sudo yum install rhui-azure-rhel-X-X-X

Замените rhui-microsoft-azure-rhelX-X-X-X фактические значения и rhui-azure-rhel-X-X-X замените их соответствующими значениями.

Установка пакета RHUI RHUI для RHUI на RHUI с помощью RHEL 9

Перейдите на вкладку типа образа SAP, чтобы просмотреть соответствующие инструкции.

Следующие действия применяются, если версия ОС более ранняя, чем последняя версия, доступная для SAP RHEL 9.0, и если виртуальная машина была создана с помощью RHEL-SAP-APPS образа предложения.

  1. rhui-azure-rhel9-sapapps Установите пакет, выполнив dnf install команду:

    sudo dnf --config='https://rhelimage.blob.core.windows.net/repositories/rhui-microsoft-azure-rhel9-sapapps.config' install rhui-azure-rhel9-sapapps
    
  2. Блокировка releasever уровня. В настоящее время версия должна быть 9.0 или 9.2.

    sudo sh -c 'echo 9.2 > /etc/dnf/vars/releasever'
    
  3. Убедитесь, что соответствующие репозитории доступны и не отображают ошибок. Для этого выполните yum repolist команду:

    sudo dnf repolist all
    

Примечание.

Если вы используете прокси-сервер в /etc/yum.conf или /etc/dnf.conf, команда не будет работать, yum --config='https://rhelimage.blob.core.windows.net/repositories/rhui-x-x-x-x install rhui-azure-rhel-X-X-X так как она не включает параметры прокси-сервера. В этом случае используйте следующие команды:

sudo wget https://rhelimage.blob.core.windows.net/repositories/rhui-microsoft-azure-rhelX-X-X-X.config
sudo mv rhui-microsoft-azure-rhelX-X-X-X.config /etc/yum.repos.d
sudo yum install rhui-azure-rhel-X-X-X

Замените rhui-microsoft-azure-rhelX-X-X-X фактические значения и rhui-azure-rhel-X-X-X замените их соответствующими значениями.

Причина 4. Отсутствует сертификат SSL ЦС

Файл сертификата ca-bundle.crt был удален вручную, поврежден или устарел.

При попытке выполнения команд yum может появиться сообщение об ошибке, похожее на следующие выходные данные:

# yum repolist  
Loaded plugins: langpacks, product-id, search-disabled-repos  
rhui-rhel-X-server-dotnet-rhui FAILED  
https://rhui-3.microsoft.com/pulp/repos//content/dist/rhel/rhui/server/X/XServer/x86_64/dotnet/1/os/repodata/70b2edf9a115dffa42d4dd66ba77e77bc3cad45d1143ed02df72ea58c92b59b5-primary.sqlite.bz2: [Errno 14] curl#77 - "Problem with the SSL CA cert (path? access rights?)"
Trying other mirror.

Решение 4. Обновление или переустановка пакета сертификатов ЦС

  1. Скачайте последний пакет ca-certificates-XXXX.X.XX-XX.elX_X.noarch.rpm с другой виртуальной машины с доступом к репозиторию и той же версией и выпуском Red Hat. Затем скопируйте пакет на затронутую виртуальную машину:

    sudo yumdownloader ca-certificates
    sudo scp ca-certificates-XXXX.X.XX-XX.elX_X.noarch.rpm <user-name>@<affected-VM-IP-address>:/tmp
    

    Примечание.

    Убедитесь, что вы замените соответствующие заполнители пользователей и IP-адресов. Кроме того, убедитесь, что вы замените имя пакета ca-certificates-XXXX.X.XX-XX.elX_X.noarch.rpm соответствующим образом.

  2. Обновите, установите или переустановите пакет ca-certificate после его копирования на затронутую виртуальную машину:

    1. Проверьте, не установлен ли пакет:

      sudo rpm -qa | grep "ca-certificates"
      
      • Если пакет отсутствует, установите его, выполнив yum install команду:

        sudo yum install ca-certificates-*.noarch.rpm --disablerepo=*
        
      • Если пакет уже установлен, выполните команду yum reinstall, чтобы переустановить его:

        sudo yum reinstall ca-certificates-*.noarch.rpm --disablerepo=*
        
    2. Чтобы повторно создать или обновить соответствующие сертификаты, выполните команду update-ca-trust :

      sudo update-ca-trust
      

Причина 5. Ошибка проверки в RHEL версии 8 или 9 (слишком слабый ключ сертификата ЦС)

Система пытается подключиться к серверу, который содержит сертификат, подписанный с помощью 2048-разрядных ключей RSA. Однако система имеет параметр политики FUTURE, который запрещает алгоритм шифрования. Следующие сообщения об ошибках отображаются в файле /var/log/messages или /var/log/dnf.log :

2023-03-13T19:07:55+0000 DEBUG error: Curl error (60): SSL peer certificate or SSH remote key was not OK for https://rhui4-1.microsoft.com/pulp/repos/content/dist/rhel9/rhui/9/x86_64/supplementary/os/repodata/repomd.xml [SSL certificate problem: CA certificate key too weak] (https://rhui4-1.microsoft.com/pulp/repos/content/dist/rhel9/rhui/9/x86_64/supplementary/os/repodata/repomd.xml).
 - Curl error (58): Problem with the local SSL certificate for https://rhui-2.microsoft.com/pulp/repos/content/e4s/rhel8/rhui/8.4/x86_64/sap/os/repodata/repomd.xml [could not load PEM client certificate, OpenSSL error error:140AB18F:SSL routines:SSL_CTX_use_certificate:ee key too small, (no key found, wrong pass phrase, or wrong file format?)]

Значение по умолчанию для этого параметра политики — DEFAULT. В этом сценарии параметр по умолчанию был изменен с DEFAULT на FUTURE или CUSTOM. Политика FUTURE отключает некоторые алгоритмы, использующие 2048 бит, такие как SHA-1, RSA и Diffie-Hellman. Политика CUSTOM также может отключить эти алгоритмы. Чтобы определить текущий режим параметров политики, выполните следующую команду update-crypto-policies :

sudo update-crypto-policies --show
DEFAULT:FUTURE

Решение 5. Возврат к политике криптографической системы по умолчанию

Верните шифрование к параметру политики системы DEFAULT, выполнив следующие действия:

  1. Измените параметр системной политики обратно, DEFAULT выполнив update-crypto-policies команду:

    sudo update-crypto-policies --set DEFAULT
    
  2. Убедитесь, что изменение политики прошло успешно, повторно выполнив команду update-crypto-policies:

    sudo update-crypto-policies --show
    
  3. Убедитесь, что ошибка устранена. Для этого выполните dnf install команду:

    sudo dnf install <package-name>
    

Дополнительные сведения о политике шифрования см. в разделе Строгие параметры шифрования по умолчанию в RHEL 8 и прекращение поддержки слабых алгоритмов шифрования.

Заявление об отказе от ответственности за сведения о продуктах сторонних производителей

В этой статье упомянуты программные продукты независимых производителей. Корпорация Microsoft не дает никаких гарантий, подразумеваемых и прочих, относительно производительности и надежности этих продуктов.

Свяжитесь с нами для получения помощи

Если у вас есть вопросы или помощь, создайте запрос на поддержку или попросите сообщества Azure. Вы также можете отправить отзыв о продукте в сообщество отзывов Azure.