SignTool Komut Satırı Aracı Kullanım Kılavuzu
SignTool, sslTrus uzak kod imzalama hizmetinin komut satırı istemcisidir ve terminalde veya otomasyon betiklerinde kod imzalama işlemlerini gerçekleştirmek için kullanılır.
Hızlı Başlangıç
Aşağıda, kopyalayıp yorumlara göre düzenleyerek kullanabileceğiniz en temel imzalama komutu örneği verilmiştir:
# 视情况而定,是否需要开启调试模式
#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
Komut Ayrıntıları
Başlamadan önce aşağıdaki üç bilgiyi hazırlamanız gerekmektedir:
Yardımı Görüntüle
-h veya --help parametresini kullanarak komutun tam yardımını görüntüleyebilirsiniz.
./signtool sign -h
Temel Parametrelerin Analizi
| Parametre | Kısaltma | Zorunlu mu? | Açıklama ve örnekler |
|---|---|---|---|
| --access-key | -k | 是 | API erişim anahtarı. Ayrıca SIGNTOOL_ACCESS_KEY ortam değişkeni ile de ayarlanabilir. |
| --access-secret | -s | 是 | API erişim anahtarı. Ayrıca SIGNTOOL_ACCESS_SECRET ortam değişkeni ile de ayarlanabilir. |
| --cert-code | -c | 是 | Uzaktan kod imzalama hizmetinin abonelik numarası; imza sertifikasını ve faturalandırmayı belirtmek için kullanılır. |
| --file | -f | 是 | İmzalanacak dosyanın yolu. Örn: -f “app.dll”. |
| --out | -o | 否 | Çıktı dosyasının yolu. Varsayılan olarak orijinal dosya adının sonuna .signed eklenir. Önemli: Dosya zaten mevcutsa işlem başarısız olur. |
| --override | 否 | İmzalanacak dosyanın yolunun üzerine yazılıp yazılmayacağı. Varsayılan değer false. | |
| --sha1 | -1 | 否 | SHA1 algoritması ile imzalamayı etkinleştirir (eski sistemlerle uyumluluk için). |
| --sha2 | -2 | 否 | SHA256 algoritması ile imzalamayı etkinleştirir (modern standart, etkinleştirilmesi önerilir). |
| --nest | 否 | İç içe imzalamanın yapılıp yapılmayacağı. Dosyada zaten bir imza varsa, --nest=true (varsayılan) mevcut imzayı korur ve yeni bir imza ekler; false ise eski imzayı siler. Etki karşılaştırması aşağıdaki gibidir: ![]() | |
| --timestamp | 否 | SHA1 imzası için kullanılan zaman damgası sunucusu URL'si. Boş dize "" olarak ayarlanarak devre dışı bırakılabilir. | |
| --timestamp-rfc3161 | 否 | SHA256 imzası için kullanılan RFC 3161 zaman damgası sunucusu URL'si. Boş dize "" olarak ayarlanarak devre dışı bırakılabilir. | |
| --desc | -n | 否 | Program açıklama bilgisi. Bu bilgi imzaya gömülür ve aşağıdaki gibi sistem güvenlik uyarılarında görüntülenebilir: ![]() |
| --url | -u | 否 | Programın resmi bilgi bağlantısı. |
| --verify | 否 | İmzalamadan hemen sonra dosya imzasının geçerli olup olmadığını doğrular. | |
| --dry-run | 否 | Deneme modu. Bu modda imza süreci kendinden imzalı bir sertifika ile doğrulanır; ilgili erişim anahtarı ve abonelik numarası isteğe bağlı olarak doldurulabilir. |
Boole Değer Parametreleri Hakkında
true/false değeri kabul eden parametrelerde (örn. --sha1, --nest), parametre=değer biçimi kullanılmalıdır; boşlukla ayrılma desteklenmez.
- 正确:--sha1=true --sha2=false
- 错误:--sha1 true --sha2 false

