Aracılığıyla paylaş


Paket güven sınırlarını yönetme

İmzalı paketler belirli bir eylemin yüklenmesini gerektirmez; ancak, içerik imzalandıktan sonra değiştirilmişse, yükleme NU3008 hatasıyla engellenir.

Uyarı

Güvenilmeyen sertifikalarla imzalanan paketler imzasız olarak kabul edilir ve diğer imzasız paketlerde olduğu gibi herhangi bir uyarı veya hata olmadan yüklenir.

Paket imzası gereksinimlerini yapılandırma

Not

Windows'ta NuGet 4.9.0+ ve Visual Studio sürüm 15.9 ve üzerini gerektirir

komutunu kullanarak nuget.config dosyasında olarak ayarlayarak require signatureValidationMode NuGet istemcilerinin paket imzalarını nasıl doğrulayacaklarını nuget config yapılandırabilirsiniz.

nuget.exe config -set signatureValidationMode=require
  <config>
    <add key="signatureValidationMode" value="require" />
  </config>

Bu mod, tüm paketlerin dosyada nuget.config güvenilen sertifikalardan herhangi biri tarafından imzalandığını doğrular. Bu dosya, sertifikanın parmak izine bağlı olarak hangi yazarların ve/veya depoların güvenilir olduğunu belirtmenize olanak tanır.

Güven paketi yazarı

Yazar imzasını temel alan paketlere güvenmek için komutunu kullanarak trusted-signers nuget.config dosyasında özelliğini ayarlayın author .

nuget.exe  trusted-signers Add -Name MyCompanyCert -CertificateFingerprint CE40881FF5F0AD3E58965DA20A9F571EF1651A56933748E1BF1C99E537C4E039 -FingerprintAlgorithm SHA256
<trustedSigners>
  <author name="MyCompanyCert">
    <certificate fingerprint="CE40881FF5F0AD3E58965DA20A9F571EF1651A56933748E1BF1C99E537C4E039" hashAlgorithm="SHA256" allowUntrustedRoot="false" />
  </author>
</trustedSigners>

İpucu

Sertifikanın nuget.exe parmak izi değerini almak SHA256 için verify komutunu kullanın.

Bir depodan gelen tüm paketlere güvenme

Depo imzasını temel alan paketlere güvenmek için öğesini repository kullanın:

<trustedSigners>  
  <repository name="nuget.org" serviceIndex="https://api.nuget.org/v3/index.json">
    <certificate fingerprint="0E5F38F57DC1BCC806D8494F4F90FBCEDD988B4676070...." 
                  hashAlgorithm="SHA256" 
                allowUntrustedRoot="false" />
  </repository>
</trustedSigners>

Paket Sahiplerine Güven

Depo imzaları, gönderim sırasında paketin sahiplerini belirlemek için ek meta veriler içerir. Depodaki paketleri sahip listesine göre kısıtlayabilirsiniz:

<trustedSigners>  
  <repository name="nuget.org" serviceIndex="https://api.nuget.org/v3/index.json">
    <certificate fingerprint="0E5F38F57DC1BCC806D8494F4F90FBCEDD988B4676070...." 
                  hashAlgorithm="SHA256" 
                allowUntrustedRoot="false" />
      <owners>microsoft;nuget</owners>
  </repository>
</trustedSigners>

Bir paketin birden çok sahibi varsa ve bu sahiplerden herhangi biri güvenilen listedeyse, paket yüklemesi başarılı olur.

Güvenilmeyen Kök sertifikalar

Bazı durumlarda, yerel makinede güvenilir bir köke zincirleme yapmayan sertifikaları kullanarak doğrulamayı etkinleştirmek isteyebilirsiniz. Bu davranışı özelleştirmek için özniteliğini allowUntrustedRoot kullanabilirsiniz.

Depo sertifikalarını eşitleme

Paket depoları, hizmet dizinlerinde kullandıkları sertifikaları duyurmalıdır. Sonunda depo bu sertifikaları güncelleştirir, örneğin sertifikanın süresi dolduğunda. Bu durumda, belirli ilkelere sahip istemciler, yeni eklenen sertifikayı eklemek için yapılandırmada bir güncelleştirme gerektirir. Güvenilir imzalayanlar eşitleme komutunu kullanarak nuget.exe bir depoyla ilişkili güvenilir imzalayanları kolayca yükseltebilirsiniz.

Şema başvurusu

İstemci ilkeleri için tam şema başvurusu nuget.config başvurusunda bulunabilir