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