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-subject-name seçenekleri aracılığıyla --certificate-fingerprint 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-subject-name seçenekleri aracılığıyla --certificate-fingerprint 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-name seçenekleri tarafından --certificate-store-location 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, sha-1 sertifika parmak izi kullanıldığında artık güvenli olarak kabul edilmediğinden bir NU3043 uyarı oluşturulur. .NET 10 ve sonraki sürümlerde uyarı bir hataya yükseltilir. Yalnızca SHA-2 ailesi parmak izleri (SHA-256, SHA-384 ve SHA-512) desteklenir.

    .NET SDK'nın tüm pre-.NET 9 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 , q[uiet], m[inimal], n[ormal]ve d[etailed]değerleridirdiag[nostic]. 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 imzalayın ve varsayılan sertifika deposunda belirtilen SHA-256 parmak iziyle eşleşir (CurrentUser\My):

    dotnet nuget sign foo.nupkg --certificate-fingerprint B2C40F2F8775D7B7EBEB76BD5A9D3A4BC3F4B8A4D8D7C5F8A4C6B3E7A9E2D5F1 --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-256 parmak iziyle eşleştirin:

    dotnet nuget sign foo.nupkg --certificate-fingerprint B2C40F2F8775D7B7EBEB76BD5A9D3A4BC3F4B8A4D8D7C5F8A4C6B3E7A9E2D5F1 --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

    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