共用方式為


VSIX 套件的簽署 CLI 參考

sign - Dotnet 工具,用來使用磁碟上的 PFX、CER 或 P7B 憑證簽署檔案和容器,或從 Windows 憑證管理員 (WCM)、密碼編譯服務提供者 (CSP) 或 Azure Key Vault 簽署檔案和容器。

重要

Sign CLI 僅支援 SHA-256SHA-384SHA-512 作為有效的指紋演算法。 您可以使用PowerShell來取得指紋:Get-FileHash -Algorithm SHA256 <path to .cer file> | Format-Table -AutoSize

重要

Sign CLI 僅支援 RSA 演算法,因此使用 ECDSA 產生指紋會在安裝期間失敗簽章驗證。 這不會封鎖安裝,但在安裝期間,VSIX 安裝程序視窗下會顯示「無效的簽章」警告。

概要

sign code certificate-store [<PATH(s)>]
    [-cf|--certificate-file <PATH>]
    [-p|--password <PASSWORD>]
    [-cfp|--certificate-fingerprint <SHA>]
    [-csp|--crypto-service-provider <CSPNAME>]
    [-k|--key-container <HASHALGORITHM>]
    [-km|--use-machine-key-container]
    [-d|--description <DESCRIPTION>]
    [-u|--descriptionUrl <URL>]
    [-fd|--file-digest <DIGEST>]
    [-t|--timestamp-url <URL>]
    [-tr|--timestamp-rfc3161 <URL>]
    [-td|--timestamp-digest <DIGEST>]
    [-o|--output <PATH>]
    [-b|--base-directory <wORKINGDIRECTORY>]
    [-f|--force]
    [-m|--max-concurrency <MAXCONCURRENCY>]
    [-fl|--filelist <FILELISTPATH>]
    [-i]|--interactive

sign code certificate-store -h|--help

描述

Sign CLI 是 Dotnet 工具,會以遞歸方式使用憑證和私用簽署檔案和容器。 您可以藉由提供 SHA-256SHA-384SHA-512 指紋,從檔案 (PFX、P7B、CER) 或憑證取得憑證和私鑰。 您可以使用製造商所實作的 密碼編譯服務提供者 (CSP) 存取 USB 金鑰,並從證書儲存記憶體取。

安裝

使用 dotnet tool install sign --prerelease --global 全域安裝 Sign CLI

簽署 CLI 的離線安裝

針對隔離的環境,您可以下載 Sign CLI NuGet 套件,並使用下列專案進行安裝:

dotnet tool install --global --add-source <path-to-folder> <tool-name> --version <version>

參數

  • VSIX-paths(s)

    指定要簽署之 VSIX 套件的路徑。

選項

  • -cf|--certificate-file <PATH>

    PFX、P7B 或 CER 檔案,其中包含憑證,而且可能是私鑰。

  • -p|--password <PASSWORD>

    憑證檔案的選擇性密碼。

  • -cfp|--certificate-fingerprint <SHA>

    SHA-256、SHA-384 或 SHA-512 指紋,用來在簽署之前識別憑證。

  • -csp|--crypto-service-provider <CSP NAME>

    包含私鑰的密碼編譯服務提供者。

    注意

    您可以執行 certutil -csplist查看所有可用的 CSP,其中舊版 CSP 會指定「提供者類型」,而 CNG 提供者的名稱通常會有「金鑰儲存提供者」。 certutil -csptest "<provider name>" 提供有關特定提供者的詳細資訊。

  • -k|--key-container <CONTAINER NAME>]

    私鑰容器名稱。

    注意

    您可以執行 certutil -csp <Provider Name> -key來尋找儲存在 CSP 內的所有金鑰。

  • -km|--use-machine-key-container]

    使用計算機層級私鑰容器,而不是預設的用戶層級容器。

  • -d|--description <DESCRIPTION>

    簽署憑證的描述。

  • -u|--descriptionUrl <URL>

    簽署憑證的描述 URL。

  • -fd | --file-digest <DIGEST>

    用來哈希檔案的摘要演算法。

  • -t|--timestamp-url <URL>

    RFC 3161 時間戳伺服器 URL。 [default: http://timestamp.acs.microsoft.com/]

  • -tr | --timestamp-rfc3161 <URL>

    指定 RFC 3161 時間戳伺服器的 URL。

  • -td|--timestamp-digest <DIGEST>

    -tr 參數搭配使用,以要求 RFC 3161 時間戳伺服器所使用的摘要演算法。

  • -o|--output <PATH>

    如果指定多個檔案,則輸出檔案或資料夾。 如果省略,則會覆寫輸入。

  • -b|--base-directory <PATH>

    要覆寫工作目錄的檔案基底目錄。

  • --f|--force

    如果簽章存在,則覆寫簽章。

  • -m|--max-concurrency <MAXCONCURRENCY>

    並行存取上限 (預設值為 4)

  • -fl | --filelist <PATH>

    檔案的路徑,其中包含要簽署或排除在容器內簽署的檔案路徑。

  • -?|-h|--help

    列印如何使用 命令的描述。

  • -i|--interactive

    在某些情況下,提示使用者輸入,例如使用用戶保護的密鑰時,用戶必須輸入密碼。

例子

  • 使用匯入至 使用者 證書存儲的憑證,簽署 contoso.vsix

    sign code certificate-store contoso.vsix -cfp 24D589...FB9523B36E -d "Constoso VSIX Signature" -u "http://www.contoso.com"
    
  • 使用 SHA-512 指紋,使用憑證 cert.pfx(未受密碼保護)簽署 contoso.vsix

    sign code certificate-store contoso.vsix -cfp A87A6F...894559B981 -cfpa sha512 -cf D:\certificates\cert.pfx -d "Constoso VSIX Signature" -u "http://www.contoso.com"
    
  • 使用憑證 cert.pfx 簽署 contoso.vsix (密碼保護):

    sign code certificate-store contoso.vsix -cfp 24D589...FB9523B36E -cf cert.pfx -p <password> -d "Constoso VSIX Signature" -u "http://www.contoso.com"
    
  • 簽署多個 VSIX 套件 - contoso.vsix,並使用憑證 cert.pfx 指定目錄中的所有 .vsix 檔案(未受到密碼保護):

    sign code certificate-store *.vsix -cfp 24D589...FB9523B36E -cf cert.pfx -d "Constoso VSIX Signature" -u "http://www.contoso.com"
    
  • 使用儲存在安全 USB 磁碟驅動器中的憑證簽署 contoso.vsix

    sign code certificate-store contoso.vsix -cfp 24D589...FB9523B36E -csp "Microsoft Software Key Storage Provider" -k "VsixSigning 0B2D249223B36D00A7DF07FB95E24D58" -d "Constoso VSIX Signature" -u "http://www.contoso.com"
    
  • 使用儲存在安全 USB 磁碟驅動器中的憑證簽署 contoso.vsix,並從 電腦 證書存儲存取 (-km 選項)。

    sign code certificate-store contoso.vsix -cfp 24D589...FB9523B36E -csp "Microsoft Software Key Storage Provider" -k "VsixSigning 0B2D249223B36D00A7DF07FB95E24D58" -km -d "Constoso VSIX Signature" -u "http://www.contoso.com"
    

    注意

    未提供 -k 選項時,此工具會檢查所提供 CSP 中的所有容器是否有相符的 SHA 指紋憑證。

  • 使用安全 USB 磁碟驅動器中儲存的憑證簽署 contoso.vsix,並指定已簽署 VSIX 的檔案摘要演算法(-fd)、時間戳伺服器(-t),以及自定義輸出路徑(-o)。

    sign code certificate-store contoso.vsix -cfp 24D589...FB9523B36E -csp "Microsoft Software Key Storage Provider" -k "VsixSigning 0B2D249223B36D00A7DF07FB95E24D58" -d "Constoso VSIX Signature" -u "http://www.contoso.com" -t "http://timestamp.acs.microsoft.com/" -fd sha256 -o "ContosoSigned.vsix"