Mengelola batas untuk kepercayaan paket
Paket yang ditandatangani tidak memerlukan tindakan tertentu untuk diinstal; namun, jika konten telah dimodifikasi sejak ditandatangani, penginstalan diblokir dengan kesalahan NU3008.
Peringatan
Paket yang ditandatangani dengan sertifikat yang tidak tepercaya dianggap tidak ditandatangani dan diinstal tanpa peringatan atau kesalahan seperti paket lain yang tidak ditandatangani.
Mengonfigurasi persyaratan tanda tangan paket
Catatan
Memerlukan NuGet 4.9.0+ dan Visual Studio versi 15.9 dan yang lebih baru di Windows
Anda dapat mengonfigurasi bagaimana klien NuGet memvalidasi tanda tangan paket dengan mengatur signatureValidationMode
ke require
dalam file nuget.config menggunakan nuget config
perintah .
nuget.exe config -set signatureValidationMode=require
<config>
<add key="signatureValidationMode" value="require" />
</config>
Mode ini akan memverifikasi bahwa semua paket ditandatangani oleh salah satu sertifikat yang dipercaya dalam nuget.config
file. File ini memungkinkan Anda menentukan penulis dan/atau repositori mana yang dipercaya berdasarkan sidik jari sertifikat.
Pembuat paket kepercayaan
Untuk mempercayai paket berdasarkan tanda tangan penulis, gunakan trusted-signers
perintah untuk mengatur author
properti di nuget.config.
nuget.exe trusted-signers Add -Name MyCompanyCert -CertificateFingerprint CE40881FF5F0AD3E58965DA20A9F571EF1651A56933748E1BF1C99E537C4E039 -FingerprintAlgorithm SHA256
<trustedSigners>
<author name="MyCompanyCert">
<certificate fingerprint="CE40881FF5F0AD3E58965DA20A9F571EF1651A56933748E1BF1C99E537C4E039" hashAlgorithm="SHA256" allowUntrustedRoot="false" />
</author>
</trustedSigners>
Tip
nuget.exe
Gunakan perintah verifikasi untuk mendapatkan SHA256
nilai sidik jari sertifikat.
Mempercayai semua paket dari repositori
Untuk mempercayai paket berdasarkan tanda tangan repositori, gunakan repository
elemen :
<trustedSigners>
<repository name="nuget.org" serviceIndex="https://api.nuget.org/v3/index.json">
<certificate fingerprint="0E5F38F57DC1BCC806D8494F4F90FBCEDD988B4676070...."
hashAlgorithm="SHA256"
allowUntrustedRoot="false" />
</repository>
</trustedSigners>
Pemilik Paket Kepercayaan
Tanda tangan repositori mencakup metadata tambahan untuk menentukan pemilik paket pada saat pengiriman. Anda dapat membatasi paket dari repositori berdasarkan daftar pemilik:
<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>
Jika paket memiliki beberapa pemilik, dan salah satu pemilik tersebut berada dalam daftar tepercaya, penginstalan paket akan berhasil.
Sertifikat Akar Tidak Tepercaya
Dalam beberapa situasi, Anda mungkin ingin mengaktifkan verifikasi menggunakan sertifikat yang tidak ditautkan ke akar tepercaya di komputer lokal. Anda dapat menggunakan allowUntrustedRoot
atribut untuk menyesuaikan perilaku ini.
Menyinkronkan sertifikat repositori
Repositori paket harus mengumumkan sertifikat yang mereka gunakan dalam indeks layanan mereka. Akhirnya repositori akan memperbarui sertifikat ini, misalnya ketika sertifikat kedaluwarsa. Ketika itu terjadi, klien dengan kebijakan tertentu akan memerlukan pembaruan pada konfigurasi untuk menyertakan sertifikat yang baru ditambahkan. Anda dapat dengan mudah meningkatkan penanda tangan tepercaya yang terkait dengan repositori dengan menggunakan nuget.exe
perintah sinkronisasi penanda tangan tepercaya.
Referensi skema
Referensi skema lengkap untuk kebijakan klien dapat ditemukan di referensi nuget.config