VSIX 套件的簽署 CLI 參考
sign
- Dotnet 工具,用來使用磁碟上的 PFX、CER 或 P7B 憑證簽署檔案和容器,或從 Windows 憑證管理員 (WCM)、密碼編譯服務提供者 (CSP) 或 Azure Key Vault 簽署檔案和容器。
重要
Sign CLI 僅支援 SHA-256
、SHA-384
和 SHA-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-256
、SHA-384
或 SHA-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"