跳至主要内容

SignTool 命令列工具使用指南

SignTool 是 sslTrus 遠端程式碼簽章服務的命令列用戶端,用於在終端機或自動化指令碼中執行程式碼簽章作業。

快速開始

以下是一個最基本的簽章指令範例,您可以複製並根據註解修改後使用:

# 视情况而定,是否需要开启调试模式
#export DEBUG=1

# 使用环境变量配置 AK、SK 以及证书订阅号
export SIGNTOOL_ACCESS_KEY='' SIGNTOOL_ACCESS_SECRET='' SIGNTOOL_CERT_CODE=''

# 签名
./signtool sign \
--dry-run \
--access-key=$SIGNTOOL_ACCESS_KEY \
--access-secret=$SIGNTOOL_ACCESS_SECRET \
--cert-code=$SIGNTOOL_CERT_CODE \
--file=app-unsigned.exe \
--out=app.exe \
--sha1=false \
--sha2=true \
--timestamp-rfc3161 http://timestamp.acs.microsoft.com

命令詳解

在開始前,您需要準備好以下三項資訊:

檢視說明

使用 -h 或 --help 參數可以檢視完整的命令說明。

./signtool sign -h

核心參數解析

參數縮寫是否必填說明與範例
--access-key-kAPI 存取金鑰。也可透過 SIGNTOOL_ACCESS_KEY 環境變數設定。
--access-secret-sAPI 存取金鑰。也可透過 SIGNTOOL_ACCESS_SECRET 環境變數設定。
--cert-code-c遠端程式碼簽章服務的訂閱號,用於指定簽章憑證與計費。
--file-f待簽章檔案的路徑。例如:-f “app.dll”。
--out-o輸出檔案的路徑。預設在原檔名後新增 .signed。重要:若檔案已存在,操作會失敗。
--override是否覆蓋待簽章檔案的路徑。預設為 false。
--sha1-1啟用 SHA1 演算法簽章(用於舊系統相容)。
--sha2-2啟用 SHA256 演算法簽章(現代標準,建議啟用)。
--nest是否巢狀簽章。當檔案已有簽章時,--nest=true(預設)會保留原簽章並新增新簽章;false 則會清除舊簽章。效果對比如下:nest
--timestampSHA1 簽章使用的時間戳記伺服器 URL。設為空字串""可停用。
--timestamp-rfc3161SHA256 簽章使用的 RFC 3161 時間戳記伺服器 URL。設為空字串""可停用。
--desc-n程式描述資訊。該資訊會嵌入簽章,並可能顯示在如下的系統安全性提示中:desc
--url-u程式的官方資訊連結。
--verify簽章後立即驗證檔案簽章是否有效。
--dry-run試用模式。該模式下將使用自簽憑證驗證簽章流程,對應的存取金鑰和訂閱號可隨意填寫。

關於布林值參數

對於接受 true/false 值的參數(如 --sha1, --nest),必須使用 參數=值 的格式,不支援空格分隔。

  • 正確:--sha1=true --sha2=false
  • 錯誤:--sha1 true --sha2 false