若要在 RHEL 9.x/8.x 虛擬機器 (VM) 上設定智慧卡重新導向,請安裝該功能所依賴的程式庫,以及支援受信任的智慧卡驗證所需的根憑證授權機構 (CA) 憑證。

必要條件

程序

  1. 安裝所需的程式庫。
    yum install -y opensc pcsc-lite pcsc-lite-libs pcsc-lite-ccid nss-tools
  2. 啟用 pcscd 服務。
    systemctl enable pcscd
    systemctl start pcscd
  3. 確保 /etc/sssd/sssd.conf 組態檔包含以下行,這會啟用智慧卡驗證。
    [pam]
    pam_cert_auth = True
  4. 將所需的 CA 憑證複製到 /etc/sssd/pki/sssd_auth_ca_db.pem
    openssl x509 -inform der -in certificate.cer -out certificate.pem
    cp certificate.pem /etc/sssd/pki/sssd_auth_ca_db.pem
  5. 若要確認智慧卡的狀態,請執行以下 pkcs11-tool 命令,並確認命令傳回正確的輸出。
    pkcs11-tool -L
    
    pkcs11-tool --login -O
    
    pkcs11-tool --test --login
  6. 複製所需的驅動程式,並將所需的程式庫檔案新增至 nssdb 目錄。
    1. 執行類似下列範例的命令。
      這些範例命令會顯示如何將 Gemalto PIV 2.0 卡的驅動程式檔案 libcmP11.so 新增至 nssdb 目錄。若要取代 libcmP11.so,您可以替代智慧卡的驅動程式檔案。
      cp libcmP11.so /usr/lib64/
      mkdir -p /etc/pki/nssdb
      certutil -N -d /etc/pki/nssdb
      certutil -A -n rootca -i certificate.pem -t "CT,CT,CT" -d /etc/pki/nssdb
      modutil -dbdir /etc/pki/nssdb/  -add "piv card 2.0" -libfile /usr/lib64/libcmP11.so
    2. 執行以下命令,確認預期的憑證已成功載入。
      # certutil -L -d /etc/pki/nssdb
      確認命令傳回的輸出與下列範例類似。
      Certificate Nickname
      rootca
    3. 執行以下命令,確認預期的程式庫已成功新增。
      modutil -dbdir /etc/pki/nssdb -list
      確認命令傳回的輸出與下列範例類似。
      Listing of PKCS #11 Modules
      –-----------------------------------------------------------
        1. NSS Internal PKCS #11 Module
               slots: 2 slots attached
              status: loaded
      
               slot: NSS Internal Cryptographic Services
              token: NSS Generic Crypto Services
      
               slot: NSS User Private Key and Certificate Services
              token: NSS Certificate DB
      
        2. piv card 2.0
              library name: /usr/lib/libcmP11.so
               slots: There are no slots attached to this module
              status: loaded
      –-----------------------------------------------------------
  7. 建立 /usr/share/p11-kit/modules/libcmP11.module 檔案。在檔案中新增下列內容。
    # This file describes how to load the opensc module
    # See: http://p11-glue.freedesktop.org/doc/p11-kit/config.html
     
    # This is a relative path, which means it will be loaded from
    # the p11-kit default path which is usually $(libdir)/pkcs11.
    # Doing it this way allows for packagers to package opensc for
    # 32-bit and 64-bit and make them parallel installable
    module: /usr/lib64/libcmP11.so
    priority: 99
    備註: (RHEL 9.x) 您還必須從系統中移除 /usr/share/p11-kit/modules/p11-kit-trust.module 檔案。此外,如果不使用 opensc,則必須移除 /usr/share/p11-kit/modules/opensc.module 檔案。
  8. 若要支援智慧卡 SSO 功能,請設定 /etc/vmware/viewagent-greeter.conf 檔案。請參閱在 Linux 桌面平台上設定組態檔中的選項
  9. 安裝 Horizon Agent套件,並啟用智慧卡重新導向。
    • 如果使用 .rpm 安裝程式:
      1. 請執行安裝程式,以使用預設功能選項來安裝 Horizon Agent
        sudo rpm -ivh VMware-horizonagent-linux-YYMM-y.y.y-xxxxxxx.el8.x86_64.rpm
      2. 若要新增智慧卡重新導向功能,請執行 ViewSetup.sh 指令碼。
        /usr/lib/vmware/viewagent/bin/ViewSetup.sh -m yes
    • 如果使用 .tar.gz 安裝程式,請使用用來啟用智慧卡重新導向功能的參數,來執行安裝程式:
      sudo ./install_viewagent.sh -m yes
    備註: 如果您收到一則錯誤訊息,指示您安裝預設 PC/SC Lite 程式庫,請解除安裝目前存在於機器上的自訂 PC/SC Lite 程式庫,並使用以下命令,來安裝預設 PC/SC Lite 程式庫。
    yum reinstall pcsc-lite-libs pcsc-lite

    之後,您可以執行 Horizon Agent 安裝程式。

  10. 如果您使用的是自訂 PC/SC Lite 程式庫,請在 /etc/vmware/config 檔案中設定 pcscd.maxReaderContextpcscd.readBody 選項。
  11. 重新啟動虛擬機器,並重新登入。