SignTool Komut Satırı Aracı Kullanım Kılavuzu
SignTool, sslTrus uzaktan kod imzalama hizmetinin komut satırı istemcisidir ve terminal veya otomasyon betiklerinde kod imzalama işlemlerini gerçekleştirmek için kullanılır.
Hızlı Başlangıç
Aşağıda en temel imzalama komutu örneği verilmiştir; kopyalayıp yorumlara göre değiştirerek kullanabilirsiniz:
# 视情况而定,是否需要开启调试模式
#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 gerekir:
Yardımı Görüntüleme
Tam komut yardımını görüntülemek için -h veya --help parametresini kullanabilirsiniz.
./signtool sign -h
Çekirdek Parametre Analizi
| Parametre | Kısaltma | Zorunlu mu | Açıklama ve Örnek |
|---|---|---|---|
| --access-key | -k | Evet | API erişim anahtarı. SIGNTOOL_ACCESS_KEY ortam değişkeniyle de ayarlanabilir. |
| --access-secret | -s | Evet | API erişim anahtarı. SIGNTOOL_ACCESS_SECRET ortam değişkeniyle de ayarlanabilir. |
| --cert-code | -c | Evet | Uzaktan kod imzalama hizmetinin abonelik numarası; imza sertifikasını ve faturalandırmayı belirtmek için kullanılır. |
| --file | -f | Evet | İmzalanacak dosyanın yolu. Örneğin: -f "app.dll". |
| --out | -o | Hayır | Çı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 | Hayır | İmzalanacak dosyanın yolunun üzerine yazılıp yazılmayacağı. Varsayılan false'tur. | |
| --sha1 | -1 | Hayır | SHA1 algoritmasıyla imzalamayı etkinleştirir (eski sistem uyumluluğu için). |
| --sha2 | -2 | Hayır | SHA256 algoritmasıyla imzalamayı etkinleştirir (modern standart, etkinleştirilmesi önerilir). |
| --nest | Hayır | İç içe imza atılıp atılmayacağı. Dosyada zaten bir imza varsa, --nest=true (varsayılan) mevcut imzayı korur ve yeni imza ekler; false ise eski imzayı temizler. Etki karşılaştırması aşağıdaki gibidir: ![]() | |
| --timestamp | Hayır | SHA1 imzası için kullanılan zaman damgası sunucusu URL'si. Boş dize "" olarak ayarlanırsa devre dışı bırakılır. | |
| --timestamp-rfc3161 | Hayır | SHA256 imzası için kullanılan RFC 3161 zaman damgası sunucusu URL'si. Boş dize "" olarak ayarlanırsa devre dışı bırakılır. | |
| --desc | -n | Hayır | Program açıklama bilgisi. Bu bilgi imzaya gömülür ve aşağıdaki gibi sistem güvenlik uyarısında görüntülenebilir: ![]() |
| --url | -u | Hayır | Programın resmi bilgi bağlantısı. |
| --verify | Hayır | İmzalamadan hemen sonra dosya imzasının geçerli olup olmadığını doğrular. | |
| --dry-run | Hayır | Deneme modu. Bu modda imzalama akışını doğrulamak için kendinden imzalı bir sertifika kullanılır; ilgili erişim anahtarı ve abonelik numarası rastgele doldurulabilir. |
Boolean Parametreler Hakkında
true/false değeri kabul eden parametreler için (ör. --sha1, --nest), parametre=değer biçimi kullanılmalıdır; boşlukla ayırma desteklenmez.
- Doğru: --sha1=true --sha2=false
- Yanlış: --sha1 true --sha2 false

