共用方式為


針對 Azure 中的 RHUI 憑證問題進行疑難解答

本文討論 Red Hat 更新基礎結構 (RHUI) 中由 TLS) 或安全套接字層 (SSL) 憑證過期或遺失傳輸層安全性 (所造成的常見問題。

必要條件

重要事項

RHUI 僅適用於隨用隨付影像。 您使用自定義或黃金映像 (也稱為「自備訂用帳戶 (BYOS) 」) ? 在此情況下,系統必須附加至 Red Hat 訂用帳戶管理員 (RHSM) 或 Satellite,才能接收更新。 如需詳細資訊,請 參閱如何使用 RHSM 註冊 RHEL 系統並訂閱 Red Hat 客戶入口網站

注意事項

  • 從 2023 年 10 月 12 日開始,所有隨用隨付 (PAYG) 用戶端都已分階段導向至 Red Hat Update Infrastructure (RHUI) 4 個 IP。 RHUI-3 IP 仍可供繼續更新,但未來將會移除。 若要確保套件和更新的存取不中斷,您必須更新現有的路由和規則,以允許存取 RHUI-3 IP,以包含 RHUI-4 IP 位址。 不過,若要在此轉換期間繼續接收更新,請勿移除 RHUI-3 IP。
  • 從 2020 年 1 月開始,新的 Azure 美國政府映射已開始使用先前在 Azure 全域標頭下提及的公用 IP 位址。

原因 1:RHUI 用戶端憑證已過期

Azure RHUI 憑證通常每兩年到期一次。 如果您使用較舊的 RHEL VM 映射,例如 RHEL 7.4 版 (映射 URN: RedHat:RHEL:7.4:7.4.2018010506) ,您會因為 TLS/SSL 用戶端憑證已過期而遇到 RHUI 連線降低的問題。 例如,您可能會收到下列其中一個錯誤訊息:

  • 「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 VM 已安裝 RHUI Azure 套件。 不過, /etc/pki/rhui/product/ 目錄中缺少憑證。

如果 RHUI 憑證不小心從 VM 中移除,當您嘗試安裝或更新套件時,會出現下列錯誤訊息:

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 列命令,確認已安裝 (EUSnon-EUSSAP/E4S) 套件:

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

    如需有關 EUS) 或非 EUS RHUI 套件 (延伸更新支援的詳細資訊,請參閱下列文章的連結章節。

    套件類型 連結
    EUS RHUI 套件 線上到 EUS 存放庫的 Red Hat 映像
    非 EUS RHUI 套件 線上到非 EUS 存放庫的 Red Hat 映像
    SAP 解決方案訂用帳戶的更新服務 (SAP/E4S) RHUI 套件 線上到 SAP/E4S 存放庫的 Red Hat 映像
  2. 確認憑證存在:

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

    注意事項

    在此案例中,您會發現檔案遺失。

  3. 執行 命令以重新安裝對應 rhui-azureyum 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 套件

Red Hat VM 遺失 RHUI EUS、非 EUS 或 SAP/E4S 套件,但存放庫組態檔仍存在於 /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:安裝EUS、非EUS或SAP/E4S RHUI 套件

為 EUS、非 EUS 或 SAP/E4S 安裝遺失的 RHUI 套件。

下列所有命令都應該使用根許可權或指定 來執行 sudo

EUS RHUI 套件安裝

  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 中使用 Proxy,命令將無法運作, yum --config='https://rhelimage.blob.core.windows.net/repositories/rhui-x-x-x-x install rhui-azure-rhel-X-X-X 因為它不包含您的 Proxy 設定。 在此情況下,請使用下列命令:

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-Xrhui-azure-rhel-X-X-X

非 EUS RHUI 套件安裝

  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 中使用 Proxy,命令將無法運作, yum --config='https://rhelimage.blob.core.windows.net/repositories/rhui-x-x-x-x install rhui-azure-rhel-X-X-X 因為它不包含您的 Proxy 設定。 在此情況下,請使用下列命令:

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-Xrhui-azure-rhel-X-X-X

RHEL 7 SAP/E4S/HANA RHUI 套件安裝

選取 SAP 映射類型的索引標籤,以查看對應的指示。

如果操作系統版本 早於 RHEL 7.9 ,且 VM 是使用 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 中使用 Proxy,命令將無法運作, yum --config='https://rhelimage.blob.core.windows.net/repositories/rhui-x-x-x-x install rhui-azure-rhel-X-X-X 因為它不包含您的 Proxy 設定。 在此情況下,請使用下列命令:

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-Xrhui-azure-rhel-X-X-X

RHEL 8 SAP/E4S/HANA RHUI 套件安裝

選取 SAP 映射類型的索引標籤,以查看對應的指示。

如果 OS 版本早於 SAP RHEL 8.X 所支援的最新版本,且 VM 是使用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. 執行 命令,確認對應的存放庫可供使用,且未顯示任何錯誤 dnf repolist

    sudo dnf repolist all
    

注意事項

如果您在 /etc/yum.conf/etc/dnf.conf 中使用 Proxy,命令將無法運作, yum --config='https://rhelimage.blob.core.windows.net/repositories/rhui-x-x-x-x install rhui-azure-rhel-X-X-X 因為它不包含您的 Proxy 設定。 在此情況下,請使用下列命令:

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-Xrhui-azure-rhel-X-X-X

RHEL 9 SAP/HANA RHUI 套件安裝

選取 SAP 映射類型的索引標籤,以查看對應的指示。

如果操作系統版本 早於 SAP for RHEL 9.0支援的最新版本,以及 VM 是使用 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 中使用 Proxy,命令將無法運作, yum --config='https://rhelimage.blob.core.windows.net/repositories/rhui-x-x-x-x install rhui-azure-rhel-X-X-X 因為它不包含您的 Proxy 設定。 在此情況下,請使用下列命令:

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-Xrhui-azure-rhel-X-X-X

原因 4:遺失 SSL CA 憑證

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:更新或重新安裝 CA 憑證套件

  1. 從另一個具有存放庫存取權和相同 Red Hat 版本和版本的 VM 下載最新的 ca-certificates-XXXX.X.XX-XX.elX_X.noarch.rpm 套件。 然後,將套件複製到受影響的 VM:

    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. 將套件複製到受影響的 VM 之後,更新、安裝或重新安裝 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 版中的驗證錯誤 (「CA 憑證密鑰太弱」)

系統嘗試連線到包含使用 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 變更為 FUTURECUSTOM。 此 FUTURE 原則會停用一些使用 2048 位的演算法,例如 SHA-1、RSA 和 Diffie-Hellman。 原則 CUSTOM 也可能停用這些演算法。 若要識別目前的原則設定模式,請執行下列 update-crypto-policies 命令:

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

解決方案5:還原為默認密碼編譯系統原則

遵循下列步驟,將密碼編譯還原為 DEFAULT 系統原則設定:

  1. 執行 指令,將系統原則設定變更回 DEFAULTupdate-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 無關的獨立廠商所製造。 Microsoft 不以默示或其他方式,提供與這些產品的效能或可靠性有關的擔保。

與我們連絡,以取得說明

如果您有問題或需要相關協助,請建立支援要求,或詢問 Azure community 支援。 您也可以將產品意見反應提交給 Azure 意應見反社群