Risolvere i problemi relativi ai certificati RHUI in Azure

Questo articolo illustra i problemi comuni nell'infrastruttura rhui (Red Hat Update Infrastructure) causati da certificati TLS (Transport Layer Security) o SSL (Secure Sockets Layer) scaduti o mancanti.

Prerequisiti

Importante

RHUI è destinato solo alle immagini con pagamento in base al consumo. Si usano invece immagini personalizzate o golden (note anche come "bring-your-own-subscription (BYOS)")? In tal caso, il sistema deve essere collegato a Red Hat Subscription Manager (RHSM) o Satellite per ricevere gli aggiornamenti. Per altre informazioni, vedere Come registrare e sottoscrivere un sistema RHEL al portale clienti di Red Hat usando RHSM.

Nota

  • A partire dal 12 ottobre 2023, tutti i client con pagamento in base al consumo (PAYG) sono stati indirizzati agli INDIRIZZI IP Red Hat Update Infrastructure (RHUI) 4 in fasi. Gli indirizzi IP RHUI-3 rimangono disponibili per gli aggiornamenti continui, ma verranno rimossi in futuro. Per garantire l'accesso ininterrotto a pacchetti e aggiornamenti, è necessario aggiornare le route e le regole esistenti che consentono l'accesso agli INDIRIZZI IP RHUI-3 per includere gli indirizzi IP RHUI-4. Tuttavia, per continuare a ricevere gli aggiornamenti durante questo periodo di transizione, non rimuovere gli INDIRIZZI IP RHUI-3.
  • A partire da gennaio 2020, le nuove immagini di Azure US Government hanno iniziato a usare gli indirizzi IP pubblici indicati in precedenza nell'intestazione Globale di Azure.

Causa 1: il certificato client RHUI è scaduto

I certificati RHUI di Azure in genere scadono ogni due anni. Se si usa un'immagine di macchina virtuale RHEL precedente, ad esempio RHEL versione 7.4 (URN immagine: RedHat:RHEL:7.4:7.4.2018010506), si verifica una connettività a RHUI danneggiata a causa di un certificato client TLS/SSL scaduto. Ad esempio, è possibile che venga visualizzato uno dei messaggi di errore seguenti:

  • "Il peer SSL ha rifiutato il certificato come scaduto"

  • "Errore: Impossibile recuperare i metadati del repository (repomd.xml) per repository:_... Verificare il percorso e riprovare"

È necessario applicare un processo per evitare la scadenza del certificato nelle immagini precedenti o nelle immagini create poco prima di una data di scadenza del certificato.

Soluzione 1: Aggiornare il pacchetto client RHUI

Per accedere ai repository RHEL nei sistemi con pagamento in base al consumo negli ambienti cloud, usare RHUI. In qualità di provider di servizi cloud, Azure può creare e pubblicare versioni RPM di configurazione client più recenti in qualsiasi momento, ad esempio per le attività seguenti:

  • Fornire l'accesso a un nuovo repository.
  • Rinnovo dei certificati.
  • Apportare altre modifiche alla creazione di pacchetti.

In questo caso, è necessario installare il nuovo pacchetto RHUI nel sistema. Questo pacchetto ha il certificato rinnovato. Eseguire il comando yum per aggiornare il pacchetto RHUI:

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

Il sudo yum update comando potrebbe anche aggiornare il pacchetto di certificati client (a seconda della versione RHEL). Questo vale anche se l'output del comando contiene gli stessi errori del certificato SSL scaduti visualizzati per altri repository. Se l'aggiornamento ha esito positivo, è necessario ripristinare la connettività normale ad altri repository RHUI in modo da poter essere eseguito sudo yum update correttamente una seconda volta.

Se si riceve un errore "404" quando si esegue yum update, provare a eseguire i comandi seguenti per aggiornare la cache yum:

sudo yum clean all
sudo yum makecache

Causa 2: certificato RHUI mancante

Nella macchina virtuale Linux di Azure Red Hat è già installato il pacchetto RHUI Di Azure. Tuttavia, il certificato non è presente nella directory /etc/pki/rhui/product/ .

Se il certificato RHUI è stato rimosso dalla macchina virtuale per errore, quando si tenta di installare o aggiornare un pacchetto viene visualizzato il messaggio di errore seguente:

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

Soluzione 2: Reinstallare il pacchetto EUS, non EUS o SAP RHUI

Reinstallare il pacchetto RHUI corrispondente per rigenerare i certificati mancanti nella posizione corretta.

Tutti i comandi nei passaggi seguenti devono essere eseguiti usando i privilegi radice o specificando sudo:

  1. Verificare che il rhui-azure pacchetto (EUS, non-EUSo SAP/E4S) sia installato usando il comando seguente:

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

    Per altre informazioni sui pacchetti RHUI EUS (Extended Update Support) o non EUS, vedere le sezioni collegate degli articoli seguenti.

    Tipo di pacchetto Collegamento
    Pacchetti RHUI EUS Immagini Red Hat connesse ai repository EUS
    Pacchetti RHUI non EUS Immagini Red Hat connesse a repository non EUS
    Pacchetti RHUI di Update Services per le sottoscrizioni di soluzioni SAP (SAP/E4S) Immagini Red Hat connesse ai repository SAP/E4S
  2. Verificare che il certificato esista:

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

    Nota

    In questo scenario si scopre che il file è mancante.

  3. Reinstallare il pacchetto corrispondente rhui-azure eseguendo il yum reinstall comando :

    sudo yum reinstall $(rpm -qa | grep -i rhui-azure) --disablerepo=* --enablerepo="*microsoft*"
    
  4. Se il EUS repository o E4S è installato, bloccare la releasever variabile:

    sudo echo $(. /etc/os-release && echo $VERSION_ID) > /etc/yum/vars/releasever
    
  5. Verificare che il certificato esista eseguendo di nuovo il ls comando . Il file del certificato deve essere elencato ora:

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

Causa 3: pacchetto RHUI mancante

Il pacchetto RHUI EUS, non EUS o SAP/E4S non è presente nella macchina virtuale Red Hat, ma i file di configurazione del repository sono ancora presenti nella directory /etc/yum.repos.d/ .

Quando si tenta di installare o aggiornare un pacchetto, viene visualizzato il messaggio di errore seguente:

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

Soluzione 3: installare il pacchetto RHUI EUS, non EUS o SAP/E4S

Installare il pacchetto RHUI mancante per EUS, non EUS o SAP/E4S.

Tutti i comandi seguenti devono essere eseguiti usando i privilegi radice o specificando sudo.

Installazione del pacchetto RHUI EUS

  1. Eseguire il yum install comando per installare il rhui-azure-rhel7-eus pacchetto:

    sudo yum --config='https://rhelimage.blob.core.windows.net/repositories/rhui-microsoft-azure-rhel7-eus.config' install 'rhui-azure-rhel7-eus'
    
  2. Bloccare la releasever variabile:

    sudo echo $(. /etc/os-release && echo $VERSION_ID) > /etc/yum/vars/releasever
    
  3. Verificare che i repository corrispondenti siano disponibili e che non vengano visualizzati errori eseguendo il yum repolist comando :

    sudo yum repolist all
    

Nota

Se si usa un proxy in /etc/yum.conf o /etc/dnf.conf, il yum --config='https://rhelimage.blob.core.windows.net/repositories/rhui-x-x-x-x install rhui-azure-rhel-X-X-X comando non funzionerà perché non include le impostazioni proxy. In questo caso, usare i comandi seguenti:

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

Sostituire rhui-microsoft-azure-rhelX-X-X-X e rhui-azure-rhel-X-X-X di conseguenza.

Installazione del pacchetto RHUI non EUS

  1. Rimuovere il file releasever, se esistente.

    sudo rm /etc/yum/vars/releasever
    
  2. Installare il rhui-azure-rhel7 pacchetto eseguendo il yum install comando :

    sudo yum --config='https://rhelimage.blob.core.windows.net/repositories/rhui-microsoft-azure-rhel7.config' install 'rhui-azure-rhel7'
    
  3. Verificare che i repository corrispondenti siano disponibili e che non vengano visualizzati errori eseguendo il yum repolist comando :

    sudo yum repolist all
    

Nota

Se si usa un proxy in /etc/yum.conf o /etc/dnf.conf, il yum --config='https://rhelimage.blob.core.windows.net/repositories/rhui-x-x-x-x install rhui-azure-rhel-X-X-X comando non funzionerà perché non include le impostazioni proxy. In questo caso, usare i comandi seguenti:

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

Sostituire rhui-microsoft-azure-rhelX-X-X-X e rhui-azure-rhel-X-X-X di conseguenza.

Installazione del pacchetto RHUI DI RHEL 7 SAP/E4S/HANA

Selezionare la scheda di un tipo di immagine SAP per visualizzare le istruzioni corrispondenti.

I passaggi seguenti si applicano se la versione del sistema operativo è precedente a RHEL 7.9 e la macchina virtuale è stata creata usando l'immagine dell'offerta RHEL-SAP-APPS .

  1. Installare il rhui-azure-rhel7-sapapps pacchetto eseguendo il 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. Bloccare la releasever variabile:

    sudo echo $(. /etc/os-release && echo $VERSION_ID) > /etc/yum/vars/releasever
    
  3. Verificare che i repository corrispondenti siano disponibili e che non vengano visualizzati errori eseguendo il yum repolist comando :

    sudo yum repolist all
    

Nota

Se si usa un proxy in /etc/yum.conf o /etc/dnf.conf, il yum --config='https://rhelimage.blob.core.windows.net/repositories/rhui-x-x-x-x install rhui-azure-rhel-X-X-X comando non funzionerà perché non include le impostazioni proxy. In questo caso, usare i comandi seguenti:

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

Sostituire rhui-microsoft-azure-rhelX-X-X-X e rhui-azure-rhel-X-X-X di conseguenza.

Installazione del pacchetto RHUI DI RHEL 8 SAP/E4S/HANA

Selezionare la scheda di un tipo di immagine SAP per visualizzare le istruzioni corrispondenti.

I passaggi seguenti si applicano se la versione del sistema operativo è precedente alla versione più recente disponibile supportata da SAP per RHEL 8.X e la macchina virtuale è stata creata usando l'immagine dell'offerta RHEL-SAP-APPS .

  1. Installare il rhui-azure-rhel8-sapapps pacchetto eseguendo il comando di installazione dnf :

    sudo dnf --config='https://rhelimage.blob.core.windows.net/repositories/rhui-microsoft-azure-rhel8-sapapps.config' install rhui-azure-rhel8-sapapps
    
  2. Bloccare la releasever variabile:

    sudo echo $(. /etc/os-release && echo $VERSION_ID) > /etc/dnf/vars/releasever
    
  3. Verificare che i repository corrispondenti siano disponibili e che non vengano visualizzati errori eseguendo il dnf repolist comando :

    sudo dnf repolist all
    

Nota

Se si usa un proxy in /etc/yum.conf o /etc/dnf.conf, il yum --config='https://rhelimage.blob.core.windows.net/repositories/rhui-x-x-x-x install rhui-azure-rhel-X-X-X comando non funzionerà perché non include le impostazioni proxy. In questo caso, usare i comandi seguenti:

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

Sostituire rhui-microsoft-azure-rhelX-X-X-X e rhui-azure-rhel-X-X-X di conseguenza.

Installazione del pacchetto RHUI DI RHEL 9 SAP/HANA

Selezionare la scheda di un tipo di immagine SAP per visualizzare le istruzioni corrispondenti.

I passaggi seguenti si applicano se la versione del sistema operativo è precedente alla versione più recente disponibile supportata da SAP per RHEL 9.0e se la macchina virtuale è stata creata usando l'immagine dell'offerta RHEL-SAP-APPS .

  1. Installare il rhui-azure-rhel9-sapapps pacchetto eseguendo il 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. Bloccare il releasever livello. Attualmente, deve essere 9.0 o 9.2.

    sudo sh -c 'echo 9.2 > /etc/dnf/vars/releasever'
    
  3. Verificare che i repository corrispondenti siano disponibili e che non vengano visualizzati errori. A tale scopo, eseguire il dnf repolist comando :

    sudo dnf repolist all
    

Nota

Se si usa un proxy in /etc/yum.conf o /etc/dnf.conf, il yum --config='https://rhelimage.blob.core.windows.net/repositories/rhui-x-x-x-x install rhui-azure-rhel-X-X-X comando non funzionerà perché non include le impostazioni proxy. In questo caso, usare i comandi seguenti:

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

Sostituire rhui-microsoft-azure-rhelX-X-X-X e rhui-azure-rhel-X-X-X di conseguenza.

Causa 4: Certificato CA SSL mancante

Il file di certificato ca-bundle.crt è stato eliminato manualmente, danneggiato o obsoleto.

Quando si tenta di eseguire yum comandi, potrebbe essere visualizzato un messaggio di errore simile all'output seguente:

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

Soluzione 4: Aggiornare o reinstallare il pacchetto certificati CA

  1. Scaricare il pacchetto ca-certificates-XXXX.X.XX-XX.elX_X.noarch.rpm più recente da un'altra macchina virtuale con accesso al repository e la stessa versione e versione di Red Hat. Copiare quindi il pacchetto nella macchina virtuale interessata:

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

    Nota

    Assicurarsi di sostituire i segnaposto dell'utente e dell'indirizzo IP corrispondenti. Assicurarsi inoltre di sostituire il nome del pacchetto , ca-certificates-XXXX.X.XX-XX.elX_X.noarch.rpm, di conseguenza.

  2. Aggiornare, installare o reinstallare il ca-certificate pacchetto dopo che è stato copiato nella macchina virtuale interessata:

    1. Verificare se il pacchetto è già installato:

      sudo rpm -qa | grep "ca-certificates"
      
      • Se il pacchetto non è presente, installarlo eseguendo il yum install comando :

        sudo yum install ca-certificates-*.noarch.rpm --disablerepo=*
        
      • Se il pacchetto è ancora installato, eseguire il yum reinstall comando per reinstallarlo:

        sudo yum reinstall ca-certificates-*.noarch.rpm --disablerepo=*
        
    2. Per rigenerare o aggiornare i certificati corrispondenti, eseguire il comando update-ca-trust :

      sudo update-ca-trust
      

Causa 5: Errore di verifica in RHEL versione 8 o 9 ("Chiave certificato CA troppo debole")

Il sistema tenta di connettersi a un server che contiene un certificato firmato usando chiavi RSA a 2048 bit. Tuttavia, il sistema dispone di un'impostazione FUTURE di criteri che impedisce tale algoritmo di crittografia. I messaggi di errore seguenti vengono visualizzati nel file /var/log/messages o /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?)]

L'impostazione predefinita dei criteri di sistema è DEFAULT. In questo scenario l'impostazione predefinita è stata modificata da DEFAULT a FUTURE o CUSTOM. Il FUTURE criterio disabilita alcuni algoritmi che usano bit 2048, ad esempio SHA-1, RSA e Diffie-Hellman. I CUSTOM criteri potrebbero anche disabilitare questi algoritmi. Per identificare la modalità di impostazione dei criteri corrente, eseguire il comando update-crypto-policies seguente:

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

Soluzione 5: Ripristinare i criteri di sistema di crittografia predefiniti

Ripristinare l'impostazione dei criteri di sistema per la DEFAULT crittografia seguendo questa procedura:

  1. Modificare nuovamente l'impostazione dei criteri di DEFAULT sistema su eseguendo il update-crypto-policies comando :

    sudo update-crypto-policies --set DEFAULT
    
  2. Verificare che la modifica dei criteri sia stata eseguita eseguendo di nuovo il update-crypto-policies comando:

    sudo update-crypto-policies --show
    
  3. Verificare che l'errore sia corretto eseguendo il dnf install comando :

    sudo dnf install <package-name>
    

Per altre informazioni sui criteri di crittografia, vedere Impostazioni predefinite crittografiche complesse in RHEL 8 e deprecazione degli algoritmi di crittografia deboli.

Dichiarazione di non responsabilità sulle informazioni di terze parti

I prodotti di terzi citati in questo articolo sono prodotti da società indipendenti da Microsoft. Microsoft non rilascia alcuna garanzia implicita o esplicita relativa alle prestazioni o all'affidabilità di tali prodotti

Contattaci per ricevere assistenza

In caso di domande o bisogno di assistenza, creare una richiesta di supporto tecnico oppure formula una domanda nel Supporto della community di Azure. È possibile anche inviare un feedback sul prodotto al feedback della community di Azure.