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


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

В этой статье рассматриваются распространенные проблемы в инфраструктуре обновления Red Hat (RHUI), вызванные истечением срока действия или отсутствием сертификатов TLS или SSL.

Предварительные условия

Важно!

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

Примечание.

  • Начиная с 12 октября 2023 г. все клиенты с оплатой по мере использования (PAYG) направляются на 4 IP-адреса в Red Hat Update Infrastructure (RHUI) поэтапно. IP-адреса RHUI-3 остаются доступными для дальнейших обновлений, но будут удалены в будущем. Чтобы обеспечить непрерывный доступ к пакетам и обновлениям, необходимо обновить существующие маршруты и правила, разрешающие доступ к IP-адресам RHUI-3, и включить IP-адреса RHUI-4. Однако, чтобы продолжать получать обновления в течение этого переходного периода, не удаляйте IP-адреса RHUI-3.
  • Начиная с января 2020 г. новые образы 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 в системе. Этот пакет содержит обновленный сертификат. Выполните команду yum , чтобы обновить пакет RHUI:

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 уже установлен пакет Azure RHUI. Однако сертификат отсутствует в каталоге /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, non-EUS или SAP RHUI

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

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

  1. Убедитесь, что rhui-azure пакет (EUS, non-EUSили SAP/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
    Пакеты RHUI служб обновления для подписок решений SAP (SAP/E4S) Образы 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, non-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, non-EUS или SAP/E4S

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

Все приведенные ниже команды должны выполняться с помощью привилегий root или путем указания 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. Удалите файл releasever, если он существует.

    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 соответственно.

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

Выберите вкладку типа изображения 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 соответственно.

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

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

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

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

    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. Убедитесь, что соответствующие репозитории доступны и не отображаются ошибки, выполнив dnf 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 ДЛЯ SAP/HANA 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. Убедитесь, что соответствующие репозитории доступны и не отображаются ошибки. Для этого выполните dnf 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 и устаревание слабых алгоритмов шифрования.

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

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

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

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