Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Anda dapat menandatangani paket NuGet untuk memungkinkan konsumen paket memvalidasi keaslian dan integritas paket. Jika verifikasi diaktifkan, .NET memverifikasi paket yang ditandatangani selama operasi pemulihan paket, yang terjadi secara otomatis ketika konsumen paket membangun atau menjalankan proyek mereka.
Tanda tangan paket NuGet didasarkan pada sertifikat X.509, dan prasyarat untuk verifikasi paket yang ditandatangani adalah penyimpanan akar sertifikat yang valid untuk penandatanganan kode dan tanda waktu.
Dimulai dengan .NET 6.0.400 SDK, NuGet menggunakan bundel sertifikat yang disertakan dalam .NET SDK untuk memverifikasi paket yang ditandatangani di mana penyimpanan akar sistem yang sesuai tidak tersedia. Bundel ini bersumber dari Program Akar Tepercaya Microsoft dan berisi sertifikat penandatanganan kode dan tanda waktu yang sama dengan penyimpanan akar di Windows. Bundel sertifikat ini harus berisi semua sertifikat akar yang diperlukan untuk memverifikasi paket dari NuGet.org.
Beberapa perintah NuGet, seperti sign dan verify, selalu melakukan verifikasi paket yang ditandatangani.
Bagian berikut untuk setiap sistem operasi menjelaskan:
- Ketika verifikasi implisit selama operasi pemulihan diaktifkan secara default.
- Cara mengaktifkannya.
- Penyimpanan akar apa yang digunakan.
Windows
Verifikasi selalu diaktifkan selama operasi pemulihan paket.
NuGet menggunakan penyimpanan akar default di Windows, yang sudah mendukung penandatanganan kode tujuan umum dan tanda waktu. Bundel sertifikat .NET SDK tidak digunakan. Semua fungsionalitas verifikasi paket yang ditandatangani didukung pada Windows dalam versi .NET SDK tempatnya diperkenalkan.
Linux
Penting
Meskipun fungsionalitas verifikasi paket yang ditandatangani ditambahkan dalam .NET 5 SDK, fungsionalitas tidak didukung di Linux hingga .NET 6.0.400 SDK. Jangan gunakan verifikasi paket yang ditandatangani dengan versi .NET SDK yang lebih lama dari 6.0.400.
Sebelum .NET 8 SDK, verifikasi dinonaktifkan secara default selama operasi pemulihan paket. Untuk ikut serta, atur variabel DOTNET_NUGET_SIGNATURE_VERIFICATION lingkungan ke true.
Dimulai dengan .NET 8 SDK, verifikasi diaktifkan secara default. Untuk memilih keluar, atur variabel DOTNET_NUGET_SIGNATURE_VERIFICATION lingkungan ke false.
Untuk verifikasi sertifikat penandatanganan kode, NuGet akan terlebih dahulu memeriksa bundel sertifikat di lokasi berikut:
/etc/pki/ca-trust/extracted/pem/objsign-ca-bundle.pem
Jika bundel sertifikat yang valid ditemukan, NuGet akan lebih memilihnya daripada bundel sertifikat .NET SDK untuk penandatanganan kode. Jika berisi setidaknya set sertifikat akar yang sama dengan bundel sertifikat .NET SDK, verifikasi paket yang ditandatangani NuGet harus berhasil. Jika tidak memiliki sertifikat akar, seperti yang digunakan dalam paket yang ditandatangani pada NuGet.org, verifikasi paket yang ditandatangani NuGet akan gagal dengan status yang tidak tepercaya (melalui NU3018 atau NU3028). Menambahkan sertifikat akar ke bundel sertifikat ini dapat mengaktifkan verifikasi yang berhasil; namun, perlu diingat bahwa bundel sertifikat ini adalah penyimpanan kepercayaan di seluruh sistem, sedangkan bundel sertifikat .NET SDK digunakan sebagai penyimpanan kepercayaan di seluruh aplikasi.
Jika bundel sertifikat yang valid tidak ditemukan di lokasi di atas, NuGet akan kembali menggunakan bundel sertifikat .NET SDK untuk penandatanganan kode.
Untuk verifikasi sertifikat tanda waktu, NuGet selalu menggunakan bundel sertifikat .NET SDK untuk tanda waktu.
macOS
Verifikasi dinonaktifkan secara default selama operasi pemulihan paket. Untuk ikut serta, atur variabel DOTNET_NUGET_SIGNATURE_VERIFICATION lingkungan ke true. Namun, kami sarankan Anda tidak mengaktifkan verifikasi. Untuk informasi selengkapnya, lihat NuGet/Home#11985 dan NuGet/Home#11986.
NuGet hanya menggunakan bundel sertifikat .NET SDK.
Penting
Meskipun fungsionalitas verifikasi paket yang ditandatangani ditambahkan di .NET 5 SDK, fungsionalitas saat ini tidak didukung di macOS. Jangan gunakan verifikasi paket yang ditandatangani dengan versi .NET SDK yang lebih lama dari 6.0.400. Biarkan dinonaktifkan secara default.