選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

使用 Microsoft SignTool 搭配用戶端 SDK 3 來簽署檔案

焦點模式
使用 Microsoft SignTool 搭配用戶端 SDK 3 來簽署檔案 - AWS CloudHSM

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

在加密和公開金鑰基礎設施 (PKI) 中,數位簽章是用來確認資料已由可信任的實體傳送。此簽章也代表傳輸中的資料未經過篡改。簽章是一種由寄件者的私有金鑰產生的加密雜湊。接收者可以使用寄件者的公有金鑰解密雜湊簽章,以驗證資料完整性。因此,應該由寄件者負責維護數位憑證。數位憑證代表寄件者的私有金鑰擁有權,並可將解密所需的公有金鑰提供給接收者。只要私有金鑰由寄件者擁有,就可以信任簽章。 AWS CloudHSM 提供安全的 FIPS 140-2 第 3 級驗證硬體,讓您使用獨佔的單一租用戶存取來保護這些金鑰。

許多組織使用 Microsoft SignTool,這是一種命令列工具,可簽署、驗證檔案,並加入時間戳記,以簡化程式碼簽署程序。您可以使用 AWS CloudHSM 安全地存放金鑰對,直到 SignTool 需要它們為止,因此建立易於自動化的工作流程來簽署資料。

下列主題提供如何使用 SignTool 的概觀 AWS CloudHSM。

步驟 1:設定先決條件

若要搭配 Microsoft SignTool 使用 AWS CloudHSM,您需要下列項目:

  • 執行 Windows 作業系統的 Amazon EC2 用戶端執行個體。

  • 憑證授權單位 (CA);不論是自己維護,或由第三方供應商建立。

  • 與 EC2 執行個體位於相同虛擬公有雲端 (VPC) 中的作用中 AWS CloudHSM 叢集。叢集必須至少包含一個 HSM。

  • 加密使用者 (CU),以擁有和管理 AWS CloudHSM 叢集中的金鑰。

  • 未簽署的檔案或可執行檔。

  • Microsoft Windows 軟體開發套件 (SDK)。

設定 AWS CloudHSM 搭配 Windows SignTool 使用 的先決條件
  1. 請依照本指南中入門一節的說明,來啟動 Windows EC2 執行個體與 AWS CloudHSM 叢集。

  2. 如果您想要託管自己的 Windows Server CA,請遵循將 Windows Server 設定為憑證授權單位 AWS CloudHSM中的步驟 1 和 2。否則,請繼續使用您公開信任的第三方 CA。

  3. 在您的 Windows EC2 執行個體上,下載並安裝下列其中一個版本的 Microsoft Windows 軟體開發套件:

    SignTool 可執行檔是 Windows SDK Signing Tools for Desktop Apps 安裝功能的一部分。如果您不需要其他功能,可以省略其安裝。預設安裝位置為:

    C:\Program Files (x86)\Windows Kits\<SDK version>\bin\<version number>\<CPU architecture>\signtool.exe

您現在可以使用 Microsoft Windows SDK、 AWS CloudHSM 叢集和 CA 來建立簽署憑證

步驟 2:建立簽署憑證

現在您已將 Windows SDK 下載到您的 EC2 執行個體上,即可使用它來產生憑證簽署請求 (CSR)。CSR 是未簽署的憑證,最終會傳遞到您的 CA 以進行簽署。在這個範例中,我們使用 Windows SDK 隨附的 certreq 可執行檔,來產生 CSR。

使用 certreq 可執行檔來產生 CSR
  1. 如果您尚未連線至 Windows EC2 執行個體,請先進行連線。如需詳細資訊,請參閱《Amazon EC2 使用者指南》中的連線至您的執行個體

  2. 建立名為 request.inf 的檔案,其中包含以下各行。將 Subject 資訊取代為您組織的相關資訊。如需每個參數的說明,請參閱 Microsoft 文件

    [Version] Signature= $Windows NT$ [NewRequest] Subject = "C=<Country>,CN=<www.website.com>,O=<Organization>,OU=<Organizational-Unit>,L=<City>,S=<State>" RequestType=PKCS10 HashAlgorithm = SHA256 KeyAlgorithm = RSA KeyLength = 2048 ProviderName = "Cavium Key Storage Provider" KeyUsage = "CERT_DIGITAL_SIGNATURE_KEY_USAGE" MachineKeySet = True Exportable = False
  3. 執行 certreq.exe。在此範例中,我們將 CSR 儲存為 request.csr

    certreq.exe -new request.inf request.csr

    在內部,會在您的 AWS CloudHSM 叢集上產生新的金鑰對,而該對的私有金鑰會用來建立 CSR。

  4. 將 CSR 提交給您的 CA。如果您使用的是 Windows Server CA,請依照下列步驟進行:

    1. 輸入下列命令以開啟 CA 工具:

      certsrv.msc
    2. 在新的視窗中,以滑鼠右鍵按一下 CA 伺服器的名稱。選擇 All Tasks (所有任務),然後選擇 Submit new request (提交新請求)

    3. 導覽至 request.csr 的位置,然後選擇 Open (開啟)

    4. 展開伺服器 CA 功能表,導覽至待處理的請求資料夾。用滑鼠右鍵按一下您剛建立的請求,並在 All Tasks (所有任務) 下方選擇 Issue (發行)

    5. 現在,導覽至 Issued Certificates (發行的憑證) 資料夾 (位於 Pending Requests (待處理的請求) 資料夾上方)。

    6. 選擇 Open (開啟) 以檢視憑證,然後選擇 Details (詳細資訊) 標籤。

    7. 選擇 Copy to File (複製到檔案) 來啟動 [憑證匯出精靈]。將 DER 編碼的 X.509 檔案以 signedCertificate.cer 名稱儲存到安全的位置。

    8. 結束 CA 工具,並使用下列命令,將憑證檔案移至 Windows 的個人憑證存放區中。其他應用程式即可使用此憑證。

      certreq.exe -accept signedCertificate.cer

您現在可以使用匯入的憑證來簽署檔案

步驟 3:簽署檔案

您現在可以開始使用 SignTool 和匯入的憑證,來簽署您的範例檔案。若要執行此作業,您需要知道憑證的 SHA-1 雜湊或「指紋」。指紋是用來確保 SignTool 只使用經過 AWS CloudHSM驗證的憑證。在這個範例中,我們使用 PowerShell 取得憑證的雜湊。您也可以使用 CA 的 GUI 或 Windows 軟體開發套件的 certutil 可執行檔。

取得憑證的指紋,並使用它來簽署檔案
  1. 以管理員身分開啟 PowerShell,並執行下列命令:

    Get-ChildItem -path cert:\LocalMachine\My

    複製傳回的 Thumbprint

    系統會以指紋形式傳回憑證的雜湊
  2. 導覽至 PowerShell 中包含 SignTool.exe 的目錄。預設位置為 C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x64

  3. 最後,執行以下命令簽署您的檔案。如果命令成功,PowerShell 會傳回成功訊息。

    signtool.exe sign /v /fd sha256 /sha1 <thumbprint> /sm C:\Users\Administrator\Desktop\<test>.ps1
    已成功簽署 .ps1 檔案。
  4. (選用) 若要驗證檔案上的簽章,請使用下列命令:

    signtool.exe verify /v /pa C:\Users\Administrator\Desktop\<test>.ps1
隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。