dotnet nuget işareti
Bu makale şunlar için geçerlidir: ✔️ .NET 6 SDK ve sonraki sürümler
Veri Akışı Adı
dotnet nuget sign
- İlk bağımsız değişkenle eşleşen tüm NuGet paketlerini bir sertifikayla imzalar.
Özet
dotnet nuget sign [<package-path(s)>]
[--certificate-path <PATH>]
[--certificate-store-name <STORENAME>]
[--certificate-store-location <STORELOCATION>]
[--certificate-subject-name <SUBJECTNAME>]
[--certificate-fingerprint <FINGERPRINT>]
[--certificate-password <PASSWORD>]
[--hash-algorithm <HASHALGORITHM>]
[-o|--output <OUTPUT DIRECTORY>]
[--overwrite]
[--timestamp-hash-algorithm <HASHALGORITHM>]
[--timestamper <TIMESTAMPINGSERVER>]
[-v|--verbosity <LEVEL>]
dotnet nuget sign -h|--help
Açıklama
komutu, dotnet nuget sign
ilk bağımsız değişkenle eşleşen tüm paketleri bir sertifikayla imzalar. Özel anahtara sahip sertifika, konu adı veya SHA-1 parmak izi sağlanarak bir dosyadan veya sertifika deposunda yüklü bir sertifikadan alınabilir.
Not
Bu komut hem kod imzalama hem de zaman damgası için geçerli bir sertifika kök deposu gerektirir. Ayrıca, bu komut bazı işletim sistemi ve .NET SDK bileşimlerinde desteklenmeyebilir. Daha fazla bilgi için bkz . NuGet imzalı paket doğrulama.
Bağımsız değişkenler
package-path(s)
İmzalanacak paketlerin dosya yolunu belirtir. Birden çok paketin oturumunu açmak için birden çok bağımsız değişken geçirilebilir.
Seçenekler
--certificate-path <PATH>
Paketi imzalamak için kullanılacak sertifikanın dosya yolunu belirtir.
Not
Bu seçenek şu anda yalnızca
PKCS12 (PFX)
sertifikanın özel anahtarını içeren dosyaları destekler.--certificate-store-name <STORENAME>
Sertifikayı aramak için kullanılacak X.509 sertifika deposunun adını belirtir. Varsayılan olarak , kişisel sertifikalar "My"için X.509 sertifika deposu. Bu seçenek, veya
--certificate-fingerprint
seçenekleri aracılığıyla--certificate-subject-name
sertifika belirtilirken kullanılmalıdır.--certificate-store-location <STORELOCATION>
Sertifikayı aramak için kullanılan X.509 sertifika deposunun adını belirtir. "CurrentUser"Varsayılan olarak , geçerli kullanıcı tarafından kullanılan X.509 sertifika deposu. Bu seçenek, veya
--certificate-fingerprint
seçenekleri aracılığıyla--certificate-subject-name
sertifika belirtilirken kullanılmalıdır.--certificate-subject-name <SUBJECTNAME>
Yerel bir sertifika deposunda sertifika aramak için kullanılan sertifikanın konu adını belirtir. Arama, sağlanan değeri kullanan büyük/küçük harfe duyarlı olmayan bir dize karşılaştırmasıdır ve diğer konu değerlerine bakılmaksızın bu dizeyi içeren konu adına sahip tüm sertifikaları bulur. Sertifika deposu ve
--certificate-store-location
seçenekleri tarafından--certificate-store-name
belirtilebilir.Not
Bu seçenek şu anda sonuçta yalnızca tek bir eşleşen sertifikayı destekler. Sonuçta birden çok eşleşen sertifika varsa veya sonuçta eşleşen sertifika yoksa, işaret komutu başarısız olur.
--certificate-fingerprint <FINGERPRINT>
Yerel bir sertifika deposunda sertifikayı aramak için kullanılan sertifikanın parmak izini belirtir.
.NET 9'dan başlayarak, bu seçenek sertifikanın SHA-1, SHA-256, SHA-384 veya SHA-512 parmak izini belirtmek için kullanılabilir. Ancak,
NU3043
sha-1 sertifika parmak izi kullanıldığında artık güvenli olarak kabul edilmediğinden bir uyarı oluşturulur..NET SDK'sının önceki tüm sürümleri yalnızca SHA-1 sertifika parmak izini kabul etmeye devam ediyor.
--certificate-password <PASSWORD>
Gerekirse sertifika parolasını belirtir. Sertifika parola korumalıysa ancak parola sağlanmazsa, imzalama komutu başarısız olur.
Not
sign
komutu yalnızca etkileşimli olmayan modu destekler. Çalışma zamanında parola istenmez.--hash-algorithm <HASHALGORITHM>
Paketi imzalamak için kullanılacak karma algoritması. Varsayılan olarak SHA256'dır. Olası değerler SHA256, SHA384 ve SHA512'dir.
-o|--output
İmzalı paketin kaydedileceği dizini belirtir. Bu seçenek belirtilmezse, imzalı paket varsayılan olarak özgün paketin üzerine yazılır.
--overwrite
Geçerli imzanın üzerine yazılması gerektiğini belirtin. Pakette zaten imza varsa komut varsayılan olarak başarısız olur.
--timestamp-hash-algorithm <HASHALGORITHM>
RFC 3161 zaman damgası sunucusu tarafından kullanılacak karma algoritma. Varsayılan olarak SHA256'dır.
--timestamper <TIMESTAMPINGSERVER>
RFC 3161 zaman damgası sunucusunun URL'si.
-v|--verbosity <LEVEL>
Komutun ayrıntı düzeyini ayarlar. İzin verilen değerler ,
m[inimal]
,n[ormal]
,d[etailed]
vediag[nostic]
değerleridirq[uiet]
. Varsayılan değer:minimal
. Daha fazla bilgi için bkz. LoggerVerbosity.
-?|-h|--help
komutunun nasıl kullanılacağına ilişkin bir açıklama yazdırır.
Örnekler
cert.pfx sertifikasıyla foo.nupkg imzalayın (parola korumalı değil):
dotnet nuget sign foo.nupkg --certificate-path cert.pfx
cert.pfx sertifikasıyla foo.nupkg imzalayın (parola korumalı):
dotnet nuget sign foo.nupkg --certificate-path cert.pfx --certificate-password password
Foo.nupkg dosyasını sertifika (parola korumalı) ile imzala, varsayılan sertifika deposunda belirtilen SHA-1 parmak iziyle eşleşir (CurrentUser\My):
dotnet nuget sign foo.nupkg --certificate-fingerprint 89967D1DD995010B6C66AE24FF8E66885E6E03A8 --certificate-password password
Foo.nupkg dosyasını sertifikayla imzala (parola korumalı) varsayılan sertifika deposunda belirtilen konu adıyla "Test certificate for testing signing" eşleşir (CurrentUser\My):
dotnet nuget sign foo.nupkg --certificate-subject-name "Test certificate for testing signing" --certificate-password password
Sertifika (parola korumalı) ile foo.nupkg dosyasını, CurrentUser\Root sertifika deposunda belirtilen SHA-1 parmak iziyle eşleşir:
dotnet nuget sign foo.nupkg --certificate-fingerprint 89967D1DD995010B6C66AE24FF8E66885E6E03A8 --certificate-password password --certificate-store-location CurrentUser --certificate-store-name Root
cert.pfx sertifikasıyla belirtilen dizinde (parola korumalı değil) birden çok NuGet paketi - foo.nupkg ve tüm .nupkg dosyalarını imzalayın:
dotnet nuget sign foo.nupkg c:\mydir\*.nupkg --certificate-path cert.pfx
cert.pfx sertifikasıyla (parola korumalı) foo.nupkg ve ile
http://timestamp.test
zaman damgasını imzalayın:dotnet nuget sign foo.nupkg --certificate-path cert.pfx --certificate-password password --timestamper http://timestamp.test
Foo.nupkg dosyasını cert.pfx sertifikasıyla (parola korumalı değil) imzalayın ve imzalı paketi belirtilen dizin altına kaydedin:
dotnet nuget sign foo.nupkg --certificate-path cert.pfx --output c:\signed\
Foo.nupkg dosyasını cert.pfx sertifikasıyla (parola korumalı değil) imzalayın ve paket zaten imzalıysa geçerli imzanın üzerine yazın:
dotnet nuget sign foo.nupkg --certificate-path cert.pfx --overwrite