Bagikan melalui


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