dotnetup indirmeleri nasıl doğrular?

Note

dotnetup genel önizlemededir. Özellikleri ve davranışı genel kullanılabilirlik öncesinde değişebilir.

dotnetup, ayıklamadan önce indirdiği .NET SDK'larını ve çalışma zamanlarını doğrular. Doğrulama türü, derlemenin nereden geldiğine bağlıdır.

Yayımlanan sürümler

Yayımlanan derlemeler için, dotnetup imzalı bir sürüm bildirimiyle başlayan bir güven zinciri kullanır:

  1. dotnetup .NET sürüm bildirimlerini indirir. Bu manifestler, sürümler dizini ve her kanalın releases.json dosyasıdır.
  2. dotnetup her manifest dosyasının ayrılmış kod imzasını (.p7s dosyası) doğrular. İmza eksikse veya geçerli değilse, komut başarısız olur.
  3. Doğrulanmış manifest, her arşivin SHA-512 karmasını içerir.
  4. dotnetup arşivi indirir ve SHA-512 karmasını manifest dosyasındaki karmayla karşılaştırır. Karmalar eşleşmiyorsa, komut başarısız olur ve dotnetup arşivi ayıklamaz.

İmzalı manifest her arşivin karmasını sabitlediğinden, dotnetup her arşiv için ayrı bir imza doğrulamaz.

İmza doğrulaması, sertifika iptal durumunu çevrimiçi olarak da denetler. Gerekli sertifika iptali uç noktalarına erişime izin verin. Ağ bu denetimleri engellerse, imza geçerli olsa bile doğrulama başarısız olur ve dotnetup yüklemeyi durdurur.

Manifest süresinin dolması

Sürüm manifestleri bir sona erme süresi içerir. dotnetup , imzası ve arşiv karmaları geçerli olsa bile manifestonun süresinin dolmadığını denetler. Ayrıca manifestin son kullanma tarihinden önce imzalandığını denetler.

Yanlış bir sistem saati veya süresi dolmuş bir manifest doğrulamanın başarısız olmasına neden olabilir. Kurtarma yönergeleri için bkz. Yayın bildiriminin süresi doldu.

Güvenilen sertifikalar

Manifest imzaları ve bunların zaman damgaları için, dotnetup araçla birlikte gelen güvenilen kök sertifikaları kullanır. İşletim sisteminin güven deposundan bu güven köklerine sertifika eklemez.

İşletim sisteminin güven deposuna sertifika eklemek, dotnetup’nin bu sertifika zincirindeki bir yayın bildirimi imzasına güvenmesini sağlamaz. İmza dotnetup'ın doğrulama ilkesini karşılamalı ve paketlenmiş bir güvenilen köke zincirlemelidir.

Günlük ve listelenmemiş yayın öncesi derlemeler

İmzalı yayın bildiriminde olmayan günlük derlemeler ve yayın öncesi sürümler farklı bir akıştan gelir. Bu derlemelerin SHA-512 karma dosyası var ancak kod imzası yok. dotnetup bu derlemeler için yalnızca SHA-512 karmasını doğrular.

dotnetup yüklerken şu yolu kullanırsınız:

  • 10.0-daily veya daily gibi günlük bir kanal.
  • Sürüm manifestosunda olmayan, 10.0.100-preview.4.25216.37 gibi tam olarak belirtilmiş bir yayın öncesi sürüm.

Yükleme başlamadan önce dotnetup şu uyarıyı gösterir:

⚠ Daily builds are not code-signed. Only the SHA-512 hash is verified.

Günlük derlemeler hakkında daha fazla bilgi için bkz. Önizleme ve günlük derlemeleri kullanma.

İmzalanmamış indirmeleri engelle

Yöneticiler, kod imzalanmamış derlemelerin yüklenmesini engelleyebilir. Bu ilke etkin olduğunda, dotnetup yine de yayımlanan derlemeleri kurar, ancak günlük ve listelenmemiş yayın öncesi derlemelerin kurulumları başarısız olur.

Windows

REG_DWORD altında, BlockUnsignedDownloads kayıt defteri değerini sıfır olmayan bir değerle HKLM\SOFTWARE\Policies\Microsoft\dotnet\Dotnetup olarak oluşturun. Örneğin, yükseltilmiş bir PowerShell oturumunda şu komutları çalıştırın:

$key = 'HKLM:\SOFTWARE\Policies\Microsoft\dotnet\Dotnetup'
New-Item -Path $key -Force | Out-Null
New-ItemProperty -Path $key -Name 'BlockUnsignedDownloads' -PropertyType DWord -Value 1 -Force | Out-Null

İlkeyi temizlemek için değeri silin veya 0 olarak ayarlayın.

Linux ve macOS

/etc/dotnet/dnup-block-unsigned-downloads Dosyayı oluşturun. Dosyanın içeriği önemli değildir. Örneğin:

sudo mkdir -p /etc/dotnet
sudo touch /etc/dotnet/dnup-block-unsigned-downloads

Politikayı kaldırmak için dosyayı silin.

Engellenen kurulumlar

İlke bir yüklemeyi engellediğinde, dotnetup aşağıdaki iletiye benzer bir hata gösterir:

An IT policy on this machine requires code-signed downloads. Installing daily or unsigned prerelease builds of SDK <version> is blocked. Choose a released version, or have an administrator clear the policy ...

Devam etmek için, yayımlanan bir sürümü yükleyin veya yöneticinizden ilkeyi temizlemesini isteyin.

dotnetup yürütülebilir dosyası

İndirme get-dotnetup betikleri indirilen dotnetup yürütülebilir dosyayı SHA-512 sağlama toplamı dosyasıyla doğrular. Daha fazla bilgi için bkz. dotnetup kullanmaya başlama.

Ayrıca bkz.