Solucionar problemas de certificado RHUI no Azure

Este artigo aborda problemas comuns nos certificados RHUI (Red Hat Update Infrastructure) causados por TLS (Segurança de Camada de Transporte) expirada ou ausente ou certificados SSL (Secure Sockets Layer).

Pré-requisitos

Importante

O RHUI destina-se apenas a imagens pagas conforme o uso. Você está usando imagens personalizadas ou douradas (também conhecidas como "BYOS (bring-your-own-subscription)") em vez disso? Nesse caso, o sistema precisa ser anexado ao RHSM (Red Hat Subscription Manager) ou satélite para receber atualizações. Para obter mais informações, confira Como registrar e assinar um sistema RHEL no Portal do Cliente do Red Hat usando RHSM.

Observação

  • A partir de 12 de outubro de 2023, todos os clientes pay-as-you-go (PAYG) foram direcionados para os IPs RHUI (Red Hat Update Infrastructure) 4 em fases. Os IPs RHUI-3 permanecem disponíveis para atualizações contínuas, mas serão removidos no futuro. Para garantir o acesso ininterrupto a pacotes e atualizações, você deve atualizar rotas e regras existentes que permitem acesso a IPs RHUI-3 para incluir endereços IP RHUI-4. No entanto, para continuar recebendo atualizações durante esse período de transição, não remova os IPs RHUI-3.
  • A partir de janeiro de 2020, as novas imagens do Governo dos EUA do Azure começaram a usar os endereços IP públicos mencionados anteriormente no cabeçalho do Azure Global.

Causa 1: o certificado de cliente RHUI expirou

Os certificados do Azure RHUI normalmente expiram a cada dois anos. Se você usar uma imagem de VM RHEL mais antiga, como a versão 7.4 do RHEL (URN da imagem: RedHat:RHEL:7.4:7.4.2018010506), você terá conectividade degradada com o RHUI devido a um certificado de cliente TLS/SSL expirado. Por exemplo, você pode receber uma das seguintes mensagens de erro:

  • "O par SSL rejeitou seu certificado como expirado"

  • "Erro: não é possível recuperar metadados do repositório (repomd.xml) para o repositório:_... Verifique seu caminho e tente novamente"

Você precisa aplicar um processo para evitar a expiração do certificado em imagens ou imagens antigas que foram criadas pouco antes da data de validade do certificado.

Solução 1: atualizar o pacote cliente RHUI

Para acessar repositórios RHEL em sistemas pay-as-you-go em ambientes de nuvem, use RHUI. Como provedor de nuvem, o Azure pode criar e publicar versões de RPM de configuração de cliente mais recentes a qualquer momento, como para as seguintes tarefas:

  • Fornecendo acesso a um novo repositório.
  • Renovando certificados.
  • Fazendo qualquer outra alteração de empacotamento.

Nessa situação, você precisa instalar o novo pacote RHUI no sistema. Esse pacote tem o certificado renovado. Execute o comando yum para atualizar o pacote RHUI:

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

O sudo yum update comando também pode atualizar o pacote de certificado do cliente (dependendo da versão rhel). Isso é verdadeiro mesmo se a saída de comando contiver os mesmos erros de certificado SSL expirados que você vê para outros repositórios. Se essa atualização for bem-sucedida, você precisará restaurar a conectividade normal para outros repositórios RHUI para que você possa executar sudo yum update com êxito uma segunda vez.

Se você receber um erro "404" ao executar yum update, tente executar os seguintes comandos para atualizar o cache yum:

sudo yum clean all
sudo yum makecache

Causa 2: o certificado RHUI está ausente

A VM do Azure Red Hat Linux tem o pacote RHUI do Azure já instalado. No entanto, o certificado está ausente do diretório /etc/pki/rhui/product/ .

Se o certificado RHUI foi removido da VM por engano, a seguinte mensagem de erro será exibida quando você tentar instalar ou atualizar um pacote:

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?)]

Solução 2: reinstalar o pacote EUS, não EUS ou SAP RHUI

Reinstale o pacote RHUI correspondente para regenerar os certificados ausentes no local correto.

Todos os comandos nas etapas a seguir devem ser executados usando privilégios raiz ou especificando sudo:

  1. Verifique se o rhui-azure pacote (EUS, non-EUS, ou SAP/E4S) está instalado usando o seguinte comando:

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

    Para obter mais informações sobre pacotes eus (suporte de atualização estendida) ou pacotes RHUI que não são eus, confira as seções vinculadas dos artigos a seguir.

    Tipo de pacote Link
    Pacotes EUS RHUI Imagens do Red Hat conectadas a repositórios eus
    Pacotes RHUI que não são eus Imagens do Red Hat conectadas a repositórios que não são da EUS
    Atualizar pacotes RHUI dos Serviços para Soluções SAP (SAP/E4S) Imagens do Red Hat conectadas a repositórios SAP/E4S
  2. Verifique se o certificado existe:

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

    Observação

    Nesse cenário, você descobre que o arquivo está ausente.

  3. Reinstale o pacote correspondente rhui-azure executando o yum reinstall comando:

    sudo yum reinstall $(rpm -qa | grep -i rhui-azure) --disablerepo=* --enablerepo="*microsoft*"
    
  4. Se o EUS repositório ou E4S estiver instalado, bloqueie a releasever variável:

    sudo echo $(. /etc/os-release && echo $VERSION_ID) > /etc/yum/vars/releasever
    
  5. Verifique se o certificado existe executando o ls comando novamente. O arquivo de certificado deve ser listado agora:

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

Causa 3: o pacote RHUI está ausente

O pacote RHUI EUS, não EUS ou SAP/E4S está ausente da VM Red Hat, mas os arquivos de configuração do repositório ainda existem no diretório /etc/yum.repos.d/ .

Ao tentar instalar ou atualizar um pacote, você recebe a seguinte mensagem de erro:

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?)]

Solução 3: instalar o pacote EUS, não EUS ou SAP/E4S RHUI

Instale o pacote RHUI ausente para EUS, não EUS ou SAP/E4S.

Todos os comandos a seguir devem ser executados usando privilégios raiz ou especificando sudo.

Instalação do pacote EUS RHUI

  1. Execute o yum install comando para instalar o rhui-azure-rhel7-eus pacote:

    sudo yum --config='https://rhelimage.blob.core.windows.net/repositories/rhui-microsoft-azure-rhel7-eus.config' install 'rhui-azure-rhel7-eus'
    
  2. Bloqueie a releasever variável:

    sudo echo $(. /etc/os-release && echo $VERSION_ID) > /etc/yum/vars/releasever
    
  3. Verifique se os repositórios correspondentes estão disponíveis e não mostre erros executando o yum repolist comando:

    sudo yum repolist all
    

Observação

Se você estiver usando um proxy em /etc/yum.conf ou /etc/dnf.conf, o yum --config='https://rhelimage.blob.core.windows.net/repositories/rhui-x-x-x-x install rhui-azure-rhel-X-X-X comando não funcionará porque ele não inclui suas configurações de proxy. Nesse caso, use os seguintes comandos:

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

Substitua rhui-microsoft-azure-rhelX-X-X-X e rhui-azure-rhel-X-X-X , de acordo.

Instalação do pacote RHUI que não é eus

  1. Remova o arquivo releasever se ele existir.

    sudo rm /etc/yum/vars/releasever
    
  2. Instale o rhui-azure-rhel7 pacote executando o yum install comando:

    sudo yum --config='https://rhelimage.blob.core.windows.net/repositories/rhui-microsoft-azure-rhel7.config' install 'rhui-azure-rhel7'
    
  3. Verifique se os repositórios correspondentes estão disponíveis e não mostre erros executando o yum repolist comando:

    sudo yum repolist all
    

Observação

Se você estiver usando um proxy em /etc/yum.conf ou /etc/dnf.conf, o yum --config='https://rhelimage.blob.core.windows.net/repositories/rhui-x-x-x-x install rhui-azure-rhel-X-X-X comando não funcionará porque ele não inclui suas configurações de proxy. Nesse caso, use os seguintes comandos:

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

Substitua rhui-microsoft-azure-rhelX-X-X-X e rhui-azure-rhel-X-X-X , de acordo.

Instalação do pacote RHUI do RHEL 7 SAP/E4S/HANA

Selecione a guia de um tipo de imagem SAP para ver as instruções correspondentes.

As etapas a seguir se aplicam se a versão do sistema operacional for anterior ao RHEL 7.9 e a VM for criada usando a imagem da RHEL-SAP-APPS oferta.

  1. Instale o rhui-azure-rhel7-sapapps pacote executando o yum install comando:

    sudo yum --config='https://rhelimage.blob.core.windows.net/repositories/rhui-microsoft-azure-rhel7-sapapps.config' install rhui-azure-rhel7-sapapps
    
  2. Bloqueie a releasever variável:

    sudo echo $(. /etc/os-release && echo $VERSION_ID) > /etc/yum/vars/releasever
    
  3. Verifique se os repositórios correspondentes estão disponíveis e não mostre erros executando o yum repolist comando:

    sudo yum repolist all
    

Observação

Se você estiver usando um proxy em /etc/yum.conf ou /etc/dnf.conf, o yum --config='https://rhelimage.blob.core.windows.net/repositories/rhui-x-x-x-x install rhui-azure-rhel-X-X-X comando não funcionará porque ele não inclui suas configurações de proxy. Nesse caso, use os seguintes comandos:

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

Substitua rhui-microsoft-azure-rhelX-X-X-X e rhui-azure-rhel-X-X-X , de acordo.

Instalação do pacote RHUI do RHEL 8 SAP/E4S/HANA

Selecione a guia de um tipo de imagem SAP para ver as instruções correspondentes.

As etapas a seguir se aplicam se a versão do sistema operacional for anterior à versão mais recente disponível com suporte do SAP para RHEL 8.X e a VM for criada usando a imagem da RHEL-SAP-APPS oferta.

  1. Instale o rhui-azure-rhel8-sapapps pacote executando o comando de instalação dnf :

    sudo dnf --config='https://rhelimage.blob.core.windows.net/repositories/rhui-microsoft-azure-rhel8-sapapps.config' install rhui-azure-rhel8-sapapps
    
  2. Bloqueie a releasever variável:

    sudo echo $(. /etc/os-release && echo $VERSION_ID) > /etc/dnf/vars/releasever
    
  3. Verifique se os repositórios correspondentes estão disponíveis e não mostre erros executando o dnf repolist comando:

    sudo dnf repolist all
    

Observação

Se você estiver usando um proxy em /etc/yum.conf ou /etc/dnf.conf, o yum --config='https://rhelimage.blob.core.windows.net/repositories/rhui-x-x-x-x install rhui-azure-rhel-X-X-X comando não funcionará porque ele não inclui suas configurações de proxy. Nesse caso, use os seguintes comandos:

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

Substitua rhui-microsoft-azure-rhelX-X-X-X e rhui-azure-rhel-X-X-X , de acordo.

Instalação do pacote RHUI do RHEL 9 SAP/HANA

Selecione a guia de um tipo de imagem SAP para ver as instruções correspondentes.

As etapas a seguir se aplicam se a versão do sistema operacional for anterior à versão mais recente disponível com suporte do SAP para RHEL 9.0, e se a VM foi criada usando a imagem da RHEL-SAP-APPS oferta.

  1. Instale o rhui-azure-rhel9-sapapps pacote executando o dnf install comando:

    sudo dnf --config='https://rhelimage.blob.core.windows.net/repositories/rhui-microsoft-azure-rhel9-sapapps.config' install rhui-azure-rhel9-sapapps
    
  2. Bloqueie o releasever nível. Atualmente, ele precisa ser 9.0 ou 9.2.

    sudo sh -c 'echo 9.2 > /etc/dnf/vars/releasever'
    
  3. Verifique se os repositórios correspondentes estão disponíveis e não mostre erros. Para fazer isso, execute o dnf repolist comando:

    sudo dnf repolist all
    

Observação

Se você estiver usando um proxy em /etc/yum.conf ou /etc/dnf.conf, o yum --config='https://rhelimage.blob.core.windows.net/repositories/rhui-x-x-x-x install rhui-azure-rhel-X-X-X comando não funcionará porque ele não inclui suas configurações de proxy. Nesse caso, use os seguintes comandos:

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

Substitua rhui-microsoft-azure-rhelX-X-X-X e rhui-azure-rhel-X-X-X , de acordo.

Causa 4: O certificado de AC SSL está ausente

O arquivo de certificado ca-bundle.crt foi excluído manualmente, foi corrompido ou está desatualizado.

Você pode receber uma mensagem de erro que se assemelha à saída a seguir ao tentar executar yum comandos:

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

Solução 4: atualizar ou reinstalar o pacote de certificados de AC

  1. Baixe o pacote ca-certificates-XXXX.X.XX-XX.elX_X.noarch.rpm de outra VM que tenha acesso ao repositório e a mesma versão e versão do Red Hat. Em seguida, copie o pacote para a VM afetada:

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

    Observação

    Certifique-se de substituir os espaços reservados de endereço IP e de usuário correspondentes. Além disso, certifique-se de substituir o nome do pacote, ca-certificates-XXXX.X.XX-XX.elX_X.noarch.rpm, de acordo com.

  2. Atualize, instale ou reinstale o ca-certificate pacote depois que ele for copiado para a VM afetada:

    1. Verifique se o pacote já está instalado:

      sudo rpm -qa | grep "ca-certificates"
      
      • Se o pacote estiver ausente, instale-o executando o yum install comando:

        sudo yum install ca-certificates-*.noarch.rpm --disablerepo=*
        
      • Se o pacote ainda estiver instalado, execute o yum reinstall comando para reinstalá-lo:

        sudo yum reinstall ca-certificates-*.noarch.rpm --disablerepo=*
        
    2. Para regenerar ou atualizar os certificados correspondentes, execute o comando update-ca-trust :

      sudo update-ca-trust
      

Causa 5: erro de verificação na versão 8 ou 9 do RHEL ("Chave de certificado da AC muito fraca")

O sistema tenta se conectar a um servidor que contém um certificado assinado usando chaves RSA de 2048 bits. No entanto, o sistema tem uma FUTURE configuração de política que proíbe esse algoritmo criptográfico. As seguintes mensagens de erro são mostradas no arquivo /var/log/messages ou /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?)]

A configuração padrão da política do sistema é DEFAULT. Nesse cenário, a configuração padrão foi alterada de DEFAULT para FUTURE ou CUSTOM. A FUTURE política desabilita alguns algoritmos que usam 2048 bits, como SHA-1, RSA e Diffie-Hellman. A CUSTOM política também pode desabilitar esses algoritmos. Para identificar o modo de configuração de política atual, execute o seguinte comando update-crypto-policies :

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

Solução 5: Reverter para a política padrão do sistema criptográfico

Reverta a criptografia para a configuração da política do DEFAULT sistema seguindo estas etapas:

  1. Altere a configuração da política do sistema de volta para DEFAULT executando o update-crypto-policies comando:

    sudo update-crypto-policies --set DEFAULT
    
  2. Verifique se a alteração de política foi executada executando o update-crypto-policies comando novamente:

    sudo update-crypto-policies --show
    
  3. Teste para garantir que o erro seja corrigido executando o dnf install comando:

    sudo dnf install <package-name>
    

Para obter mais informações sobre a política criptográfica, confira Padrões de criptografia fortes no RHEL 8 e preterir algoritmos de criptografia fracos.

Aviso de isenção de responsabilidade para informações de terceiros

Os produtos de terceiros mencionados neste artigo são produzidos por empresas independentes da Microsoft. A Microsoft não oferece nenhuma garantia, implícita ou não, do desempenho ou da confiabilidade desses produtos.

Entre em contato conosco para obter ajuda

Se você tiver dúvidas ou precisar de ajuda, crie uma solicitação de suporte ou peça ajuda à comunidade de suporte do Azure. Você também pode enviar comentários sobre o produto para a comunidade de comentários do Azure.