Bagikan melalui


Menandatangani paket NuGet

Paket yang ditandatangani memungkinkan pemeriksaan verifikasi integritas konten, yang memberikan perlindungan terhadap perusakan konten. Tanda tangan paket juga berfungsi sebagai sumber kebenaran tunggal tentang asal aktual paket dan keaslian paket guling untuk konsumen. Panduan ini mengasumsikan Anda telah membuat paket.

Mendapatkan sertifikat penandatanganan kode

Sertifikat yang valid dapat diperoleh dari otoritas sertifikat publik seperti:

Daftar lengkap otoritas sertifikasi yang dipercaya oleh Windows juga dapat diperoleh dari http://aka.ms/trustcertpartners.

Anda dapat menggunakan sertifikat yang diterbitkan sendiri untuk tujuan pengujian. Namun, paket yang ditandatangani menggunakan sertifikat yang diterbitkan sendiri tidak diterima oleh NuGet.org. Pelajari selengkapnya tentang membuat sertifikat pengujian

Mengekspor file sertifikat

  • Anda dapat mengekspor sertifikat yang sudah ada ke format DER biner dengan menggunakan Wizard Ekspor Sertifikat.

    Wizard Ekspor Sertifikat

  • Anda juga dapat mengekspor sertifikat menggunakan perintah Export-Certificate PowerShell.

Menandatangani paket

Tanda tangani paket menggunakan tanda nuget dotnet (memerlukan .NET 6.0.100 SDK atau yang lebih baru).

dotnet nuget sign MyPackage.nupkg --certificate-path <PathToTheCertificate> --timestamper <TimestampServiceURL>

or

Tanda tangani paket menggunakan tanda nuget (memerlukan nuget.exe 4.6.0 atau yang lebih baru):

nuget sign MyPackage.nupkg -CertificatePath <PathToTheCertificate> -Timestamper <TimestampServiceURL>

Tip

Penyedia sertifikat sering juga menyediakan URL server tanda waktu yang dapat Anda gunakan untuk Timestamper menunjukkan argumen opsional di atas. Konsultasikan dengan dokumentasi dan/atau dukungan penyedia Anda untuk URL layanan tersebut.

  • Anda dapat menggunakan sertifikat yang tersedia di penyimpanan sertifikat atau menggunakan sertifikat dari file. Lihat referensi CLI untuk tanda nuget.
  • Paket yang ditandatangani harus menyertakan tanda waktu untuk memastikan tanda tangan tetap valid ketika sertifikat penandatanganan telah kedaluwarsa. Jika tidak, operasi tanda akan menghasilkan peringatan.
  • Anda dapat melihat detail tanda tangan paket tertentu menggunakan verifikasi nuget.

Daftarkan sertifikat di NuGet.org

Untuk menerbitkan paket yang ditandatangani, Anda harus terlebih dahulu mendaftarkan sertifikat dengan NuGet.org. Anda memerlukan sertifikat sebagai .cer file dalam format DER biner.

  1. Masuk ke NuGet.org.
  2. Account settings Buka (atau Manage Organization > Edit Organization jika Anda ingin mendaftarkan sertifikat dengan akun Organisasi).
  3. Perluas bagian Certificates dan pilih Register new.
  4. Telusuri dan pilih file sertifikasi yang diekspor sebelumnya. Sertifikat Terdaftar

Catatan

  • Satu pengguna dapat mengirimkan beberapa sertifikat dan sertifikat yang sama dapat didaftarkan oleh beberapa pengguna.
  • Setelah pengguna memiliki sertifikat yang terdaftar, semua pengiriman paket di masa mendatang harus ditandatangani dengan salah satu sertifikat. Lihat Mengelola persyaratan penandatanganan untuk paket Anda di NuGet.org
  • Pengguna juga dapat menghapus sertifikat terdaftar dari akun. Setelah sertifikat dihapus, paket baru yang ditandatangani dengan sertifikat tersebut akan gagal saat pengiriman. Paket yang ada tidak terpengaruh.

Menerbitkan paket

Anda sekarang siap untuk menerbitkan paket ke NuGet.org. Lihat Menerbitkan paket.

Membuat sertifikat pengujian

Anda dapat menggunakan sertifikat yang diterbitkan sendiri untuk tujuan pengujian. Untuk membuat sertifikat yang diterbitkan sendiri, gunakan perintah PowerShell New-SelfSignedCertificate.

New-SelfSignedCertificate -Subject "CN=NuGet Test Developer, OU=Use for testing purposes ONLY" `
                          -FriendlyName "NuGetTestDeveloper" `
                          -Type CodeSigning `
                          -KeyUsage DigitalSignature `
                          -KeyLength 2048 `
                          -KeyAlgorithm RSA `
                          -HashAlgorithm SHA256 `
                          -Provider "Microsoft Enhanced RSA and AES Cryptographic Provider" `
                          -CertStoreLocation "Cert:\CurrentUser\My" 

Perintah ini membuat sertifikat pengujian yang tersedia di penyimpanan sertifikat pribadi pengguna saat ini. Anda dapat membuka penyimpanan sertifikat dengan menjalankan certmgr.msc untuk melihat sertifikat yang baru dibuat.

Peringatan

NuGet.org tidak menerima paket yang ditandatangani dengan sertifikat yang diterbitkan sendiri.

Mengelola persyaratan penandatanganan untuk paket Anda di NuGet.org

  1. Masuk ke NuGet.org.

  2. Buka Manage PackagesMengonfigurasi penanda tangan paket

  • Jika Anda adalah pemilik satu-satunya paket, Anda adalah penanda tangan yang diperlukan, yaitu, Anda dapat menggunakan salah satu sertifikat terdaftar untuk menandatangani dan menerbitkan paket Anda untuk NuGet.org.

  • Jika paket memiliki beberapa pemilik, secara default, sertifikat pemilik "Apa pun" dapat digunakan untuk menandatangani paket. Sebagai pemilik bersama paket, Anda dapat mengambil alih "Apa pun" dengan diri Anda sendiri atau pemilik bersama lainnya untuk menjadi penanda tangan yang diperlukan. Jika Anda membuat pemilik yang tidak memiliki sertifikat apa pun yang terdaftar, maka paket yang tidak ditandatangani akan diizinkan.

  • Demikian pula, jika opsi "Apa pun" default dipilih untuk paket di mana satu pemilik memiliki sertifikat terdaftar dan pemilik lain tidak memiliki sertifikat apa pun yang terdaftar, maka NuGet.org menerima paket yang ditandatangani dengan tanda tangan yang didaftarkan oleh salah satu pemiliknya atau paket yang tidak ditandatangani (karena salah satu pemilik tidak memiliki sertifikat yang terdaftar).