共用方式為


設定簽署整合以使用信任簽署

信任簽署目前支援下列簽署整合:

  • SignTool
  • GitHub 動作
  • Azure DevOps 工作
  • 適用於 Authenticode 的 PowerShell
  • Azure PowerShell (商務用應用程式控制 CI 原則)
  • 信任簽署 SDK

我們不斷努力支援更多簽署整合。 有更多整合可用時,我們會更新支援的整合清單。

本文說明如何設定每個支援的信任簽署簽署整合。

設定 SignTool 以使用信任簽署

本節說明如何設定 SignTool 以搭配信任簽署使用。

必要條件

若要完成本文的步驟,您需要:

  • 信任簽署帳戶、身分識別驗證和憑證設定檔。
  • 信任簽署憑證設定檔簽署者角色的個人或群組指派。

步驟摘要

  1. 下載並安裝 SignTool
  2. 下載並安裝 .NET 8 Runtime
  3. 下載並安裝信任簽署 dlib 套件
  4. 建立 JSON 檔案,以提供您的信任簽署帳戶和憑證設定檔
  5. 叫用 SignTool 以簽署檔案

下載並安裝 SignTool

信任簽署需要使用 SignTool 在 Windows 上簽署檔案,特別是 Windows 10 SDK 10.0.2261.755 或更新版本中的 SignTool.exe 版本。 您可透過 Visual Studio 安裝程式安裝完整的 Windows 10 SDK,或個別下載並安裝

若要下載並安裝 SignTool:

  1. Microsoft.Windows.SDK.BuildTools 下載最新版本的 SignTool 和 Windows Build Tools NuGet。

  2. 從 Windows SDK 安裝 SignTool (最低版本:10.0.2261.755,我們的 dlib 不支援 20348 Windows SDK 版本)。

另一個選項是使用最新的 nuget.exe 檔案,使用 PowerShell 下載並擷取最新的 Windows SDK Build Tools NuGet 套件:

  1. 執行下列下載命令以下載 nuget.exe

    Invoke-WebRequest -Uri https://dist.nuget.org/win-x86-commandline/latest/nuget.exe -OutFile .\nuget.exe  
    
  2. 執行下列安裝命令,以下載並擷取 Windows SDK Build Tools NuGet 套件:

    .\nuget.exe install Microsoft.Windows.SDK.BuildTools -Version 10.0.22621.3233 -x
    

下載並安裝 .NET 8.0 Runtime

SignTool 用來與信任簽署互動的元件需要安裝 .NET 8.0 Runtime 您只需要核心 .NET 8.0 Runtime。 確定您根據想要執行的 SignTool 版本來安裝正確的平台執行階段。 或者,您可直接安裝兩者

例如:

下載並安裝信任簽署 dlib 套件

若要下載並安裝信任簽署 dlib 套件 (.zip 檔案):

  1. 下載信任簽署 dlib 套件

  2. 擷取信任簽署 dlib 壓縮內容,並將其安裝在您所選目錄中的簽署節點上。 此節點必須是您將使用 SignTool 來簽署檔案的節點。

另一個選項是透過 NuGet 下載信任簽署 dlib 套件,這類似於 Windows SDK Build Tools NuGet 套件:

.\nuget.exe install Microsoft.Trusted.Signing.Client -Version 1.0.53 -x

建立 JSON 檔案

若要使用信任簽署進行簽署,您必須提供在必要條件中建立的信任簽署帳戶和憑證設定檔的詳細資料。 您可完成下列步驟,在 JSON 檔案上提供這項資訊:

  1. 建立新的 JSON 檔案 (例如,metadata.json)。

  2. 將信任簽署帳戶和憑證設定檔的特定值新增至 JSON 檔案。 如需詳細資訊,請參閱信任簽署 dlib 套件中包含的 metadata.sample.json 檔案,或使用下列範例:

    {
      "Endpoint": "<Trusted Signing account endpoint>",
      "CodeSigningAccountName": "<Trusted Signing account name>",
      "CertificateProfileName": "<Certificate profile name>",
      "CorrelationId": "<Optional CorrelationId value>"
    }
    

    "Endpoint" URI 值必須是與您在設定這些資源時建立信任簽署帳戶和憑證設定檔的區域一致的 URI。 下表顯示區域及其對應的 URI。

    區域 區域類別欄位 端點 URI 值
    美國東部 EastUS https://eus.codesigning.azure.net
    West US3 [1] WestUS3 https://wus3.codesigning.azure.net
    美國中西部 WestCentralUS https://wcus.codesigning.azure.net
    美國西部 2 WestUS2 https://wus2.codesigning.azure.net
    北歐 北歐 https://neu.codesigning.azure.net
    西歐 西歐 https://weu.codesigning.azure.net

    1 選用 "CorrelationId" 欄位是不透明的字串值,您可提供此值以將簽署要求與您自己的工作流程相互關聯,例如組建識別碼或機器名稱。

使用 SignTool 來簽署檔案

若要叫用 SignTool 以簽署檔案:

  1. 記下您的 SDK Build Tools、擷取的 Azure.CodeSigning.Dlib,以及 metadata.json 檔案所在的位置 (來自先前章節)。

  2. 將下列路徑中的預留位置取代為您在步驟 1 中記下的特定值:

    & "<Path to SDK bin folder>\x64\signtool.exe" sign /v /debug /fd SHA256 /tr "http://timestamp.acs.microsoft.com" /td SHA256 /dlib "<Path to Trusted Signing dlib bin folder>\x64\Azure.CodeSigning.Dlib.dll" /dmdf "<Path to metadata file>\metadata.json" <File to sign> 
    
  • Windows SDK 包含 x86 和 x64 版的 SignTool。 務必參考對應的 Azure.CodeSigning.Dlib.dll 版本。 上述範例適用於 x64 版的 SignTool。
  • 確定您在本文開頭所列的相依性中使用建議的 Windows SDK 版本,否則 dlib 檔案將無法運作。

信任簽署憑證具有三天的有效期,因此時間戳記對於持續成功驗證超過該三天有效期限的簽章至關重要。 信任簽署建議使用信任簽署的 Microsoft 公用 RSA 時間戳記授權單位:http://timestamp.acs.microsoft.com/

搭配信任簽署使用其他簽署整合

您也可以使用下列工具或平台來設定與信任簽署的簽署整合。

  • GitHub Actions:若要了解如何使用 GitHub 動作進行信任簽署,請參閱 GitHub Marketplace 中的信任簽署 - 動作。 完成設定和使用 GitHub 動作的指示。

  • Azure DevOps 工作:若要使用信任簽署 Azure DevOps 工作,請參閱 Visual Studio Marketplace 中的信任簽署。 完成設定的指示。

  • [適用於 Authenticode 的 PowerShell]:若要使用 PowerShell 進行信任簽署,請參閱 PowerShell 資源庫中的 [信任簽署],以安裝 PowerShell 模組。

  • Azure PowerShell - 商務用應用程式控制 CI 原則:若要使用信任簽署進行程式碼完整性 (CI) 原則簽署,請遵循簽署新的 CI 原則中的指示,並參閱 Az.CodeSigning PowerShell 模組

  • 信任簽署 SDK:若要建立自己的簽署整合,您可使用我們的開放原始碼信任簽署 SDK。 請注意,此 SDK 版本確實顯示為未列出。 它仍受到支援,而且會在發行較新的 SDK 時受到支援。