NuGet: Microsoft Sertifika Değişimi Kurulumu Kırmasın
Microsoft, NuGet paketlerini imzalarken kullandığı X.509 sertifikasını güncelliyor. NuGet ekibinin duyurusuna göre 23 Eylül 2026 itibarıyla yeni sertifika, Microsoft’un varsayılan author-signing sertifikası olacak. Paketleri yalnızca Microsoft tarafından author-signed olduğu doğrulandığında kuran ekipleri doğrudan ilgilendiriyor bu değişiklik. nuget.config dosyanızda güvenilen imzalayan (trusted signers) listesi tutuyorsanız ya da dotnet nuget verify ile parmak izi doğrulaması yapıyorsanız, yapılandırmayı zamanında güncellemediğinizde paket kurulumlarınız hata verebilir.
Değişen ne?
Microsoft, NuGet paketlerini author-signing yöntemiyle imzalıyor. Geçiş tarihinden sonra yeni paketler mevcut sertifikayla imzalanmayacak, yerine yeni sertifika geçecek. Daha eski sertifikalarla imzalanmış mevcut paketler ise imzalarını korumaya devam ediyor, yani geçmişte yayımlanmış paketler bu değişiklikten etkilenmiyor.
Duyuruda paylaşılan SHA-256 parmak izleri şöyle:
- Mevcut sertifika:
566A31882BE208BE4422F7CFD66ED09F5D4524A5994F50CCC8B05EC0528C1353 - Yeni sertifika:
9A1B131BEE0605433056A4EA3815478A8E177961A968C6C0027C1093D1FEB630
Microsoft’un belirttiğine göre yeni sertifikayla imzalanmış paketler, eski sertifikalarla imzalanmış paketlerle aynı şekilde kurulabilecek. Kırılma yalnızca parmak izlerini elle beyaz listeye aldığınız senaryolarda ortaya çıkıyor.
Kimler etkileniyor?
Şu iki durumdan biri sizde geçerliyse aksiyon almanız gerekiyor.
1. NuGet client policy ile güvenilen imzalayan listesi kullanıyorsanız
Etkilenip etkilenmediğinizi anlamak için nuget.config dosyanızda aşağıdaki gibi bir yapılandırma var mı, ona bakın. Bu dosyalar farklı kapsamlarda birden fazla konumda bulunabilir; makine genelindeki bir yapılandırma da devrede olabilir.
<config>
<add key="signatureValidationMode" value="require" />
</config>
<trustedSigners>
<author name="Microsoft">
<certificate fingerprint="3F9001EA83C560D712C24CF213C3D312CB3BFF51EE89435D3430BD06B5D0EECE" hashAlgorithm="SHA256" allowUntrustedRoot="false" />
<certificate fingerprint="AA12DA22A49BCE7D5C1AE64CC1F3D892F150DA76140F210ABD2CBFFCA2C18A27" hashAlgorithm="SHA256" allowUntrustedRoot="false" />
<certificate fingerprint="566A31882BE208BE4422F7CFD66ED09F5D4524A5994F50CCC8B05EC0528C1353" hashAlgorithm="SHA256" allowUntrustedRoot="false" />
</author>
</trustedSigners>
2. dotnet nuget verify ile parmak izi doğrulaması yapıyorsanız
Bir paketin Microsoft tarafından author-signed olduğunu doğrulamak için şuna benzer bir komut çalıştırıyorsanız etkileneceksiniz:
dotnet nuget verify <PackagePath> --certificate-fingerprint 3F9001EA83C560D712C24CF213C3D312CB3BFF51EE89435D3430BD06B5D0EECE --certificate-fingerprint AA12DA22A49BCE7D5C1AE64CC1F3D892F150DA76140F210ABD2CBFFCA2C18A27 --certificate-fingerprint 566A31882BE208BE4422F7CFD66ED09F5D4524A5994F50CCC8B05EC0528C1353
Bu iki senaryodan hiçbiri sizde yoksa sertifika güncellemesinden etkilenmemeniz bekleniyor.
Yeni sertifikayı nasıl eklersiniz?
Duyurunun temel mesajı, yeni parmak izini eski parmak izlerini silmeden eklemeniz. Eski sertifikaları listede tutmak, o sertifikalarla imzalanmış paketleri kurmaya devam edebilmeniz için gerekli.
Client policy tarafı
Güvenilen imzalayanlar listesini güncellemezseniz, yeni sertifikayla imzalanmış bir paketi kurma girişimi NU3034 hatasıyla başarısız olur. Yeni sertifikayı eklemenin en pratik yolu dotnet nuget trust komutu:
dotnet nuget trust author Microsoft 9A1B131BEE0605433056A4EA3815478A8E177961A968C6C0027C1093D1FEB630 --algorithm SHA256
Bu komut.NET 6 SDK ve sonrasında kullanılabiliyor, ilgili nuget.config dosyasını da günceller. Belirli bir yapılandırma dosyasını hedeflemek isterseniz --configfile <Path> parametresini kullanabilirsiniz. Birden fazla nuget.config kapsamının bulunduğu ortamlarda yanlış dosyayı güncellememek açısından bu önemli.
Alternatif olarak yeni parmak izini mevcut Microsoft girdisine elle ekleyebilirsiniz. Sonuçta hem eski hem yeni sertifikaları içeren bir blok elde etmelisiniz:
<trustedSigners>
<author name="Microsoft">
<certificate fingerprint="3F9001EA83C560D712C24CF213C3D312CB3BFF51EE89435D3430BD06B5D0EECE" hashAlgorithm="SHA256" allowUntrustedRoot="false" />
<certificate fingerprint="AA12DA22A49BCE7D5C1AE64CC1F3D892F150DA76140F210ABD2CBFFCA2C18A27" hashAlgorithm="SHA256" allowUntrustedRoot="false" />
<certificate fingerprint="566A31882BE208BE4422F7CFD66ED09F5D4524A5994F50CCC8B05EC0528C1353" hashAlgorithm="SHA256" allowUntrustedRoot="false" />
<certificate fingerprint="9A1B131BEE0605433056A4EA3815478A8E177961A968C6C0027C1093D1FEB630" hashAlgorithm="SHA256" allowUntrustedRoot="false" />
</author>
</trustedSigners>
Paket doğrulama tarafı
dotnet nuget verify kullanıyorsanız yeni parmak izini eskilerini koruyarak komuta ekleyin:
dotnet nuget verify <PackagePath> --certificate-fingerprint 3F9001EA83C560D712C24CF213C3D312CB3BFF51EE89435D3430BD06B5D0EECE --certificate-fingerprint AA12DA22A49BCE7D5C1AE64CC1F3D892F150DA76140F210ABD2CBFFCA2C18A27 --certificate-fingerprint 566A31882BE208BE4422F7CFD66ED09F5D4524A5994F50CCC8B05EC0528C1353 --certificate-fingerprint 9A1B131BEE0605433056A4EA3815478A8E177961A968C6C0027C1093D1FEB630
Her --certificate-fingerprint seçeneği, kabul edilen bir SHA-256 imzalayan sertifika parmak izi ekliyor. Dört değeri birden listede tutarsanız hem yeni imzalanan paketler hem de eski Microsoft sertifikalarıyla imzalanmış mevcut paketler doğrulanabilir.
Pratikte nereye bakmalı?
Bu tür bir yapılandırma tek bir yerde durmuyor olabilir. Duyuruda da vurgulandığı gibi nuget.config dosyaları farklı kapsamlarda birden çok konumda bulunabilir: çözüm/depo kökü, kullanıcı profili ve makine genelindeki yapılandırmalar. İmza doğrulaması ise çoğu zaman geliştirici makinesinden çok CI/CD ajanlarında ve build imajlarında zorunlu kılınıyor. Güncellemeyi yalnızca yerel ortamda yapıp geçerseniz pipeline tarafında sürpriz NU3034 hataları çıkabilir, yapılandırmanın uygulandığı tüm konumları gözden geçirmekte fayda var.
Kaynakta geçiş için “en erken 23 Eylül 2026” ifadesi kullanılıyor; yani kesin bir kesinti takvimi değil, bu tarihten itibaren geçerli olacak bir varsayılan değişikliği söz konusu. NuGet ekibinin önerisi de bu yüzden aksiyonu tarihe yaklaşmadan, mümkün olan en kısa sürede almak.
Sorun yaşarsanız
Etkilenip etkilenmediğinizden emin değilseniz ya da adımları uygularken sorunla karşılaşırsanız NuGet ekibine iletişim kanalları üzerinden ulaşabilirsiniz. Genel NuGet geri bildirimleri ve önerileri içinse hata/öneri gönderme rehberini inceleyip NuGet/Home deposunda tartışma başlatabilir veya issue açabilirsiniz.
Kaynaklar ve İleri Okuma
- Microsoft is updating its author-signing certificate starting September 23, 2026 (.NET Blog, The NuGet Team)
- İmzalı NuGet paketlerini kurma ve güvenilen imzalayan yapılandırması
- nuget.config dosya referansı
- NuGet davranışını yapılandırma ve config dosyası kapsamları
- dotnet nuget verify komut referansı
- dotnet nuget trust komut referansı
- NU3034 hata kodu açıklaması
- NuGet ekibiyle iletişim
- Hata ve öneri gönderme rehberi
- NuGet/Home GitHub deposu
- .NET Blog







Yorum gönder