Ana içeriğe geç

signtool ksp ile Windows KSP entegrasyonu

signtool ksp Windows sslTrus Key Storage Provider(KSP)yönetir. KSP kurulumu ve yapılandırması tamamlandıktan sonra, Microsoft signtool.exe, CNG Provider aracılığıyla uzak imzalama hizmetini çağırabilir; yerel olarak özel anahtara sahip olması gerekmez.

Not

signtool ksp tüm alt komutları yalnızca Windows platformunu destekler. Windows dışındaki platformlarda herhangi bir ksp alt komutunu çalıştırmak şu hatayı döndürür: key storage provider is only supported on windows


Alt Komut Genel Bakışı​

signtool ksp [command]
Alt komutAmaç
installKSP DLL’yi kurar ve kaydeder
uninstallKSP’yi kayıttan çıkarır ve DLL’yi siler
listKaydedilmiş KSP anahtar yapılandırmalarını listeler
addYeni KSP anahtar yapılandırması ekler (etkileşimli)
delBelirtilen KSP anahtar yapılandırmasını siler (etkileşimli)
Bilgi

--address parametresi yalnızca ksp add olduğunda geçerlidir; sertifika PEM’ini almak ve uzak hizmet adresini kaydetmek için kullanılır.


KSP Kurulumu​

signtool ksp install

Yürütme sonrası:

  1. İçe gömülü sslTrusKSP.dll değerini ProgramData/sslTrusKSP/sslTrusKSP.dll içine yazın.
  2. ProgramData içindeki DLL sürümü System32 içindekinden farklıysa, DLL'yi System32'ye kopyalayın.
  3. CNG Sağlayıcısını kaydedin: sslTrus Key Storage Provider.
  4. KSP yapılandırma dosyasını ProgramData/sslTrusKSP/config.dat (DPAPI şifreli) olarak kaydedin.
Not

install sistem düzeyindeki CNG Sağlayıcı kaydını değiştirir; yönetici terminalinde çalıştırmanız önerilir. DLL sürümlerinin aynı olduğu tespit edilirse, ksp is already installed kaydedilir ve doğrudan geri dönülür.


KSP'yi Kaldırma​

signtool ksp uninstall

Çalıştırıldıktan sonra:

  1. CNG Sağlayıcısını kaydını silin: sslTrus Key Storage Provider。
  2. ProgramData/sslTrusKSP/sslTrusKSP.dll öğesini silin。
  3. System32 içindeki sslTrusKSP.dll öğesini silin。
Açıklama

uninstall tüm ProgramData/sslTrusKSP dizinini silmez. Kaydedilmiş config.dat, sertifika dosyaları ve günlükler manuel olarak temizlenmelidir.


Anahtar Yapılandırmasını Görüntüle​

signtool ksp list

Çıktı alanı açıklaması:

AlanAnlam
NoSıra numarası
CertCodeSertifika numarası
ServerUrlnicsrs veya default olarak gösterilir
AccessKeyAccess Key
AccessSecretGizlenmiş Access Secret
Açıklama
  • Yapılandırma dosyası yoksa, no ksp configuration döndürülür.
  • Yapılandırma mevcut olduğu hâlde anahtar listesi boşsa no ksp key kaydedilir.
  • AccessSecret maskelenerek gösterilir; ancak yapılandırma dosyasının kendisi yine de hassas bir dosya olarak yönetilmelidir. :::

Anahtar yapılandırması ekleme​

signtool ksp add

Belirtilen NICSRS adresini girin:

signtool ksp add --address nicsrs

Komut etkileşimlidir, sırayla giriş yapın:

Please enter the access key: your-access-key
Please enter the access secret: your-access-secret
Please enter the certificate code: CERT_CODE

Yürütme sonrası:

  1. Sertifika PEM'ini almak için uzak /v1/codesign/cert çağrısı yapılır.
  2. Sertifika ProgramData/sslTrusKSP/CERT_CODE.crt olarak kaydedilir.
  3. Anahtar yapılandırması ProgramData/sslTrusKSP/config.dat (DPAPI şifrelemesi ile) yazılır.

Sertifika numarası zaten mevcutsa, şu uyarı gösterilir:

The certificate code already exists, do you want to override it? [y/N]

Üzerine yazmak için y girin; başka bir değer girerseniz veya doğrudan Enter'a basarsanız işlem iptal edilir.

Dikkat

ksp add etkileşimli bir komuttur; şu anda --access-key ve --cert-code gibi etkileşimsiz parametreleri desteklemez. Yapılandırma eklenirken uzak API'ye erişilir ve sertifika PEM dosyası yerel ProgramData dizinine yazılır.


Anahtar yapılandırmasını silme​

signtool ksp del

Etkileşimli olarak sertifika numarasını girin:

Please enter the certificate code: CERT_CODE

config.dat içinden eşleşen anahtar yapılandırmasını silin ve şifrelenmiş yapılandırma dosyasını yeniden kaydedin.

Açıklama

Mevcut uygulama yalnızca yapılandırma öğesini siler, ProgramData/sslTrusKSP/CERT_CODE.crt sertifika dosyasını silmez.


KSP ile Microsoft signtool.exe Kullanımı​

KSP yapılandırması tamamlandıktan sonra, Windows SDK içindeki Microsoft signtool.exe ile Provider'ı çağırın.

Dikkat

Aşağıdaki komuttaki signtool.exe, Microsoft Windows SDK ile birlikte gelen bir araçtır, sslTrus CLI değildir. Geçerli dizinde veya PATH'te her ikisi de mevcutsa, karışıklığı önlemek için Windows SDK içindeki signtool.exe tam yolunu kullanın.

SHA256 imza örneği:

signtool.exe sign /v ^
/csp "sslTrus Key Storage Provider" ^
/kc CERT_CODE ^
/f C:\ProgramData\sslTrusKSP\CERT_CODE.crt ^
/fd SHA256 ^
/tr http://timestamp.acs.microsoft.com ^
/td SHA256 ^
.\EXAMPLE.exe

SHA1 imzası ekleme örneği:

signtool.exe sign /v ^
/csp "sslTrus Key Storage Provider" ^
/kc CERT_CODE ^
/f C:\ProgramData\sslTrusKSP\CERT_CODE.crt ^
/fd SHA1 ^
/tr http://timestamp.acs.microsoft.com ^
/td SHA256 ^
/as ^
.\EXAMPLE.exe

Parametre Açıklamaları:

ParametreAnlam
/csp "sslTrus Key Storage Provider"sslTrus kurulumu için KSP Sağlayıcıyı belirtir
/kc CERT_CODEKSP anahtar adını belirtir; kural olarak sertifika numarasıdır
/f C:\ProgramData\sslTrusKSP\CERT_CODE.crtksp add tarafından kaydedilen sertifika dosyasını belirtir
/fd SHA256 veya /fd SHA1Dosya özet algoritması
/tr <url>RFC3161 zaman damgası hizmeti
/td SHA256Zaman damgası özet algoritması
/asİmzaya ekle, mevcut imzayı üzerine yazma

Sorun Giderme Referansı​

Hata MesajıOlası NedenÇözüm Önerisi
key storage provider is only supported on windowsksp komutu Windows dışı bir platformda çalıştırıldı.KSP işlemlerini yalnızca Windows üzerinde gerçekleştirin.
no ksp configurationKSP yapılandırma dosyası henüz oluşturulmadı.Önce signtool ksp install ve signtool ksp add komutlarını çalıştırın.
no such certificate codeSilinen sertifika numarası mevcut değil.Sertifika numarasını doğrulamak için signtool ksp list komutunu kullanın.

Güvenlik Önlemleri​

  • signtool ksp install ve signtool ksp uninstall, Windows sistem dizinini ve CNG Sağlayıcı kaydını değiştirir ve genellikle yönetici ayrıcalıkları gerektirir.
  • signtool ksp add, uzak sertifika arayüzüne erişir ve sertifika dosyası ile şifreleme yapılandırmasını ProgramData/sslTrusKSP konumuna yazar.
  • Access Secret, KSP yapılandırma dosyası ve yerel günlükler hassas bilgiler olarak ele alınmalı; günlüklere veya sürüm deposuna yazılmamalıdır.