共用方式為


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

適用於:✔️ Linux VM

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

必要條件

重要

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

注意

  • 從 2023 年 10 月 12 日起,所有隨用隨付 (PAYG) 用戶端都已分階段導向 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)for repository:_...請確認其路徑,然後再試一次」

您必須套用程式,以避免在憑證到期日之前建立的舊映射或映射中到期。

解決方案 1:更新 RHUI 用戶端套件

若要在雲端環境中存取隨用隨付系統上的 RHEL 存放庫,請使用 RHUI。 身為雲端提側羷,Azure 隨時都能建立及發佈較新的用戶端設定 RPM 版本,例如下列工作:

  • 提供新存放庫的存取權
  • 更新憑證
  • 進行任何其他封裝變更

在此情況下,您必須在系統中安裝新的 RHUI 套件。 此套件具有更新的憑證。 若要更新 RHUI 套件,請 執行 yum 命令:

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

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. 執行 yum reinstall 命令來重新安裝對應的rhui-azure套件:

    sudo yum reinstall $(rpm -qa | grep -i rhui-azure) --disablerepo=* --enablerepo="*microsoft-azure*"
    
  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-azure-rhel-X-X-X 取代rhui-microsoft-azure-rhelX-X-X-X為實際值。

非 EUS RHUI 套件安裝

  1. 如果存在,請移除 releasever 檔案。

    sudo rm /etc/yum/vars/releasever
    
  2. 執行 yum install 命令來rhui-azure-rhel7安裝套件:

    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-azure-rhel-X-X-X 取代rhui-microsoft-azure-rhelX-X-X-X為實際值。

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

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

如果 OS 版本 早於 RHEL 7.9 ,且 VM 是使用 RHEL-SAP-APPS 供應專案映像所建立,則下列步驟適用。

  1. 執行 yum install 命令來rhui-azure-rhel7-sapapps安裝套件:

    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-azure-rhel-X-X-X 取代rhui-microsoft-azure-rhelX-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-azure-rhel-X-X-X 取代rhui-microsoft-azure-rhelX-X-X-X為實際值。

RHEL 9 SAP/HANA RHUI 套件安裝

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

如果 OS 版本早於 SAP 支援的RHEL 9.0最新版本,以及 VM 是使用RHEL-SAP-APPS供應專案映像所建立,則下列步驟適用。

  1. 執行 dnf install 命令來rhui-azure-rhel9-sapapps安裝套件:

    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 中使用 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-azure-rhel-X-X-X 取代rhui-microsoft-azure-rhelX-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 原則會停用一些使用 2,048 位的演算法,例如 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 無關的獨立廠商所製造。 Microsoft 不以默示或其他方式,提供與這些產品的效能或可靠性有關的擔保。

與我們連絡,以取得說明

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