VSIX Paketlerini İmzalama

Uzantı derlemelerinin Visual Studio'da çalıştırılabilmesi için önce imzalanması gerekmez, ancak bunu yapmak iyi bir uygulamadır.

VSIX paketine dijital imza eklemek, uzantınızın güvenliğini sağlar ve kurcalamayı önler. Yükleme sırasında VSIX yükleyicisi imzayı ve sertifikanın bağlantısını görüntüler. VSIX'in içeriği imza güncelleştirilmeden değiştirilirse, yükleyici kullanıcıyı yalnızca geçersiz bir paket imzası konusunda uyarır. Bu kılavuzda zaten bir VSIX oluşturduğunuz varsayılır.

Kod imzalama sertifikası alma

Geçerli sertifikalar aşağıdakiler gibi bir genel sertifika yetkilisinden alınabilir:

Windows tarafından güvenilen sertifika yetkililerinin tam listesi de 'den http://aka.ms/trustcertpartnersalınabilir.

Test amacıyla kendi kendine verilen sertifikaları kullanabilirsiniz. Ancak, kendi kendine verilen sertifikalar kullanılarak imzalanan VSIX paketleri Visual Studio Market tarafından kabul edilmemektedir. .NET CLI ile otomatik olarak imzalanan sertifikalar oluşturma hakkında daha fazla bilgi edinin.

Sign CLI ile VSIX imzalama

VSIXSignTool, Sign CLI (github.com) için kullanım dışı bırakıldı. Bu araç, NuGet'e İmzala (nuget.org) altında dotnet aracı olarak yayımlanır ve yerel imzalamayı veya Azure Key Vault bulut imzalamasını kullanmayı destekler.

Yerel imzalama için Sign CLI, şu konumların herhangi bir bileşiminde depolanan sertifikaları ve özel anahtarları destekler:

Sign CLI'yi yükleme

  1. Bir Geliştirici PowerShell örneği açın.

  2. NuGet kaynağı olarak nuget.org eklendiğini ve etkinleştirildiğini doğrulayın.

    • Kullanarak kaynaklarınızı denetleme dotnet nuget list source
    • kullanarak NuGet.org kaynak olarak ekleme dotnet nuget add source -n NuGet.org https://api.nuget.org/v3/index.json
  3. komutunu çalıştırarak dotnet tool install sign --version <version> --globalSign'ı yükleyin. Burada<version>, İmzala (nuget.org) altındaki en son kullanılabilir sürümdür.

    • --global isteğe bağlıdır ve aracı PATH ortam değişkenine otomatik olarak eklenen .NET araçları varsayılan konumuna yükler.

İmza CLI'sinin Çevrimdışı Yüklemesi

Yalıtılmış ortamlar için en son Sign CLI NuGet paketini indirebilir ve şu komutu kullanarak yükleyebilirsiniz:

dotnet tool install --global --add-source <path-to-folder> <tool-name> --version <version>

Örneğin:

dotnet tool install --global --add-source D:\NuGetTools sign --version 99.0

İmza CLI'sını kullanma

Yüklendikten sonra, Sign CLI'ya kullanılarak sign code <command> <options>bir Geliştirici PowerShell örneğinde erişilebilir. Seçeneklerin dökümü için bkz . VSIX Paketleri için CLI Başvurusu İmzala.

Önemli

sign CLI yalnızca , SHA-384ve SHA-512 değerlerini geçerli parmak izi algoritmaları olarak desteklerSHA-256. Şunları kullanarak parmak izi almak için PowerShell'i kullanabilirsiniz: Get-FileHash -Algorithm SHA256 <path to .cer file> | Format-Table -AutoSize

  • SHA-256 parmak iziyle PFX dosyası kullanarak imzalama:
sign code certificate-store -cfp 80BB567B...52CB95D4C -cf "D:\Certs\f5ec6169345347a7cd2f83af662970d5d0bfc914.pfx" -d "My VSIX Signature" -t "http://timestamp.acs.microsoft.com/" "C:\Users\Contoso\Downloads\FingerSnapper2022.vsix"

Not

PFX dosyaları hem sertifika hem de imzalama için kullanılan özel anahtar içerir ve Genişletilmiş Doğrulama (EV) ve EV dışı imzalama için C/A Tarayıcı Forumu gereksinimlerine uymaz. yalnızca Sağlamlaştırılmış Güvenli Modül (HSM) cihazında depolanan özel anahtarların kullanılması ve şifreleme hizmeti sağlayıcısı (CSP) kullanarak bunlara erişmeniz önerilir.

  • Microsoft Sertifika Yöneticisi ve SHA512 parmak izi (-csp seçeneği) kullanarak imzalama:
sign code certificate-store -cfp A87A60A6F...894559B98 -csp "Microsoft Software Key Storage Provider" -d "VSIX Signature" -t "http://timestamp.acs.microsoft.com/" "C:\Users\Contoso\Downloads\FingerSnapper2022.vsix"
  • USB sürücüsünde özel anahtar kullanarak imzalama (-csp seçeneği):
sign code certificate-store -cfp B113E82D...F5CF294BE0B -csp "eToken Base Cryptographic Provider" -d "VSIX Signature" -t "http://timestamp.acs.microsoft.com/" "C:\Users\Contoso\Downloads\FingerSnapper2022.vsix"
  • Belirli bir anahtar kapsayıcısını (-csp ve -k seçenekleri) kullanarak BIR USB sürücüsü kullanarak imzalama:
sign code certificate-store -cfp 15BB56B0...1ACB959D0 -csp "eToken Base Cryptographic Provider" -k "NuGet Signing.629c9149345347cd2f83af6f5ec70d5d0a7bf616" -d "VSIX Signature" -t "http://timestamp.acs.microsoft.com/" "C:\Users\Contoso\Downloads\FingerSnapper2022.vsix"