dotnet nuget sign
Ten artykuł dotyczy: ✔️ zestaw .NET 6 SDK i nowsze wersje
Nazwisko
dotnet nuget sign
- Podpisuje wszystkie pakiety NuGet pasujące do pierwszego argumentu z certyfikatem.
Streszczenie
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
opis
Polecenie dotnet nuget sign
podpisuje wszystkie pakiety pasujące do pierwszego argumentu z certyfikatem. Certyfikat z kluczem prywatnym można uzyskać z pliku lub certyfikatu zainstalowanego w magazynie certyfikatów, podając nazwę podmiotu lub odcisk palca SHA-1.
Uwaga
To polecenie wymaga magazynu głównego certyfikatu, który jest prawidłowy zarówno w przypadku podpisywania kodu, jak i sygnatury czasowej. Ponadto to polecenie może nie być obsługiwane w niektórych kombinacjach systemu operacyjnego i zestawu .NET SDK. Aby uzyskać więcej informacji, zobacz Weryfikacja podpisanego pakietu NuGet.
Argumenty
package-path(s)
Określa ścieżkę pliku do pakietów do podpisania. Do podpisywania wielu pakietów można przekazać wiele argumentów.
Opcje
--certificate-path <PATH>
Określa ścieżkę pliku do certyfikatu, który ma być używany podczas podpisywania pakietu.
Uwaga
Ta opcja obsługuje obecnie tylko
PKCS12 (PFX)
pliki zawierające klucz prywatny certyfikatu.--certificate-store-name <STORENAME>
Określa nazwę magazynu certyfikatów X.509, który ma być używany do wyszukiwania certyfikatu. Wartość domyślna to "My", magazyn certyfikatów X.509 dla certyfikatów osobistych. Ta opcja powinna być używana podczas określania certyfikatu za pośrednictwem
--certificate-subject-name
opcji lub--certificate-fingerprint
.--certificate-store-location <STORELOCATION>
Określa nazwę magazynu certyfikatów X.509 używaną do wyszukiwania certyfikatu. Domyślnie to "CurrentUser", magazyn certyfikatów X.509 używany przez bieżącego użytkownika. Ta opcja powinna być używana podczas określania certyfikatu za pośrednictwem
--certificate-subject-name
opcji lub--certificate-fingerprint
.--certificate-subject-name <SUBJECTNAME>
Określa nazwę podmiotu certyfikatu używanego do wyszukiwania lokalnego magazynu certyfikatów dla certyfikatu. Wyszukiwanie jest porównaniem ciągów bez uwzględniania wielkości liter przy użyciu podanej wartości, która znajduje wszystkie certyfikaty z nazwą podmiotu zawierającą ten ciąg, niezależnie od innych wartości podmiotu. Magazyn certyfikatów można określić za pomocą
--certificate-store-name
opcji i .--certificate-store-location
Uwaga
Ta opcja obecnie obsługuje tylko jeden zgodny certyfikat w wyniku. Jeśli w wyniku istnieje wiele pasujących certyfikatów lub nie ma zgodnego certyfikatu, polecenie podpisywania zakończy się niepowodzeniem.
--certificate-fingerprint <FINGERPRINT>
Określa odcisk palca certyfikatu używanego do wyszukiwania lokalnego magazynu certyfikatów dla certyfikatu.
Począwszy od platformy .NET 9, tej opcji można użyć do określenia sha-1, SHA-256, SHA-384 lub SHA-512 odcisku palca certyfikatu. Jednak ostrzeżenie jest zgłaszane, gdy jest używany odcisk palca certyfikatu SHA-1,
NU3043
ponieważ nie jest już uważany za bezpieczny.Wszystkie poprzednie wersje zestawu .NET SDK nadal akceptują tylko odcisk palca certyfikatu SHA-1.
--certificate-password <PASSWORD>
Określa hasło certyfikatu, jeśli jest to konieczne. Jeśli certyfikat jest chroniony hasłem, ale nie podano hasła, polecenie podpisywania zakończy się niepowodzeniem.
Uwaga
Polecenie
sign
obsługuje tylko tryb nieinterakcyjny. W czasie wykonywania nie będzie wyświetlany żaden monit o podanie hasła.--hash-algorithm <HASHALGORITHM>
Algorytm skrótu używany do podpisywania pakietu. Wartość domyślna to SHA256. Możliwe wartości to SHA256, SHA384 i SHA512.
-o|--output
Określa katalog, w którym ma zostać zapisany podpisany pakiet. Jeśli ta opcja nie zostanie określona, domyślnie oryginalny pakiet zostanie zastąpiony przez podpisany pakiet.
--overwrite
Wskaż, że bieżący podpis powinien zostać zastąpiony. Domyślnie polecenie zakończy się niepowodzeniem, jeśli pakiet ma już podpis.
--timestamp-hash-algorithm <HASHALGORITHM>
Algorytm skrótu używany przez serwer sygnatury czasowej RFC 3161. Wartość domyślna to SHA256.
--timestamper <TIMESTAMPINGSERVER>
Adres URL serwera sygnatury czasowej RFC 3161.
-v|--verbosity <LEVEL>
Ustawia poziom szczegółowości polecenia. Dozwolone wartości to
q[uiet]
, ,n[ormal]
m[inimal]
,d[etailed]
, idiag[nostic]
. Wartość domyślna tominimal
. Aby uzyskać więcej informacji, zobacz LoggerVerbosity.
-?|-h|--help
Wyświetla opis sposobu używania polecenia .
Przykłady
Zaloguj się foo.nupkg przy użyciu certyfikatu cert.pfx (nie chronionego hasłem):
dotnet nuget sign foo.nupkg --certificate-path cert.pfx
Zaloguj się foo.nupkg przy użyciu certyfikatu cert.pfx (chronione hasłem):
dotnet nuget sign foo.nupkg --certificate-path cert.pfx --certificate-password password
Podpis foo.nupkg z certyfikatem (chroniony hasłem) jest zgodny z określonym odciskiem palca SHA-1 w domyślnym magazynie certyfikatów (CurrentUser\My):
dotnet nuget sign foo.nupkg --certificate-fingerprint 89967D1DD995010B6C66AE24FF8E66885E6E03A8 --certificate-password password
Zaloguj się foo.nupkg z certyfikatem (chroniony hasłem) jest zgodny z określoną nazwą "Test certificate for testing signing" podmiotu w domyślnym magazynie certyfikatów (CurrentUser\My):
dotnet nuget sign foo.nupkg --certificate-subject-name "Test certificate for testing signing" --certificate-password password
Zaloguj się foo.nupkg z certyfikatem (chroniony hasłem) pasuje do określonego odcisku palca SHA-1 w magazynie certyfikatów CurrentUser\Root:
dotnet nuget sign foo.nupkg --certificate-fingerprint 89967D1DD995010B6C66AE24FF8E66885E6E03A8 --certificate-password password --certificate-store-location CurrentUser --certificate-store-name Root
Podpisz wiele pakietów NuGet — foo.nupkg i wszystkie pliki nupkg w katalogu określonym przy użyciu certyfikatu cert.pfx (nie chronione hasłem):
dotnet nuget sign foo.nupkg c:\mydir\*.nupkg --certificate-path cert.pfx
Sign foo.nupkg with certificate cert.pfx (password protected) and timestamp with
http://timestamp.test
:dotnet nuget sign foo.nupkg --certificate-path cert.pfx --certificate-password password --timestamper http://timestamp.test
Zaloguj się foo.nupkg przy użyciu certyfikatu cert.pfx (nie chronionego hasłem) i zapisz podpisany pakiet w określonym katalogu:
dotnet nuget sign foo.nupkg --certificate-path cert.pfx --output c:\signed\
Zarejestruj plik foo.nupkg przy użyciu certyfikatu cert.pfx (nie jest chroniony hasłem) i zastąp bieżący podpis, jeśli pakiet jest już podpisany:
dotnet nuget sign foo.nupkg --certificate-path cert.pfx --overwrite