dotnet nuget sign
이 문서의 적용 대상: ✔️ .NET 6 SDK 이상 버전
속성
dotnet nuget sign
- 첫 번째 인수와 일치하는 모든 NuGet 패키지에 인증서를 사용하여 서명합니다.
개요
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
Description
dotnet nuget sign
명령은 첫 번째 인수와 일치하는 모든 패키지에 인증서를 사용하여 서명합니다. 프라이빗 키가 있는 인증서는 주체 이름 또는 SHA-1 지문을 제공하여 인증서 저장소에 설치된 인증서 또는 파일에서 가져올 수 있습니다.
참고 항목
이 명령에는 코드 서명 및 타임스탬프 모두에 유효한 인증서 루트 저장소가 필요합니다. 또한 이 명령은 운영 체제와 .NET SDK의 일부 조합에서 지원되지 않을 수 있습니다. 자세한 내용은 NuGet 서명된 패키지 확인을 참조하세요.
인수
package-path(s)
서명할 패키지의 파일 경로를 지정합니다. 여러 패키지에 서명하려면 인수를 여러 개 전달합니다.
옵션
--certificate-path <PATH>
패키지에 서명하는 데 사용할 인증서의 파일 경로를 지정합니다.
참고
이 옵션은 현재 인증서의 프라이빗 키를 포함하는
PKCS12 (PFX)
파일만 지원합니다.--certificate-store-name <STORENAME>
인증서를 검색하는 데 사용할 X.509 인증서 저장소의 이름을 지정합니다. 기본값은 "My"이며, 개인 인증서의 X.509 인증서 저장소입니다. 이 옵션은
--certificate-subject-name
또는--certificate-fingerprint
옵션을 통해 인증서를 지정할 때 사용해야 합니다.--certificate-store-location <STORELOCATION>
인증서를 검색하는 데 사용할 X.509 인증서 저장소의 이름을 지정합니다. 기본값은 "CurrentUser"이며, 현재 사용자가 사용하는 X.509 인증서 저장소입니다. 이 옵션은
--certificate-subject-name
또는--certificate-fingerprint
옵션을 통해 인증서를 지정할 때 사용해야 합니다.--certificate-subject-name <SUBJECTNAME>
로컬 인증서 저장소에서 인증서를 검색하는 데 사용되는 인증서의 주체 이름을 지정합니다. 검색은 제공된 값을 사용하는 대/소문자를 구분하지 않는 문자열 비교이며, 다른 주체 값과 관계없이 해당 문자열을 포함하는 주체 이름을 가진 모든 인증서를 찾습니다. 인증서 저장소는
--certificate-store-name
및--certificate-store-location
옵션으로 지정할 수 있습니다.참고
이 옵션은 현재 결과에서 일치하는 인증서를 하나만 지원합니다. 결과에 일치하는 인증서가 여러 개 있거나 결과에 일치하는 인증서가 없는 경우에는 sign 명령이 실패합니다.
--certificate-fingerprint <FINGERPRINT>
로컬 인증서 저장소에서 인증서를 검색하는 데 사용되는 인증서의 지문을 지정합니다.
.NET 9부터 이 옵션을 사용하여 인증서의 SHA-1, SHA-256, SHA-384 또는 SHA-512 지문을 지정할 수 있습니다. 그러나
NU3043
SHA-1 인증서 지문이 더 이상 안전한 것으로 간주되지 않으므로 사용되는 경우 경고가 발생합니다.이전 버전의 모든 .NET SDK는 SHA-1 인증서 지문만 계속 허용합니다.
--certificate-password <PASSWORD>
필요한 경우 인증서 암호를 지정합니다. 인증서가 암호로 보호되어 있지만 암호를 제공하지 않으면 sign 명령이 실패합니다.
참고
sign
명령은 비대화형 모드만 지원합니다. 런타임에 암호를 묻는 메시지가 표시되지 않습니다.--hash-algorithm <HASHALGORITHM>
패키지에 서명하는 데 사용할 해시 알고리즘입니다. 기본값은 SHA256입니다. 가능한 값은 SHA256, SHA384, SHA512입니다.
-o|--output
서명된 패키지를 저장할 디렉터리를 지정합니다. 이 옵션을 지정하지 않으면 기본적으로 서명된 패키지가 원래 패키지를 덮어씁니다.
--overwrite
현재 시그니처를 덮어써야 함을 나타냅니다. 기본적으로 패키지에 이미 시그니처가 있으면 명령이 실패합니다.
--timestamp-hash-algorithm <HASHALGORITHM>
RFC 3161 타임스탬프 서버에서 사용할 해시 알고리즘입니다. 기본값은 SHA256입니다.
--timestamper <TIMESTAMPINGSERVER>
RFC 3161 타임스탬프 서버의 URL입니다.
-v|--verbosity <LEVEL>
명령의 세부 정보 표시 수준을 설정합니다. 허용되는 값은
q[uiet]
,m[inimal]
,n[ormal]
,d[etailed]
,diag[nostic]
입니다. 기본값은minimal
입니다. 자세한 내용은 LoggerVerbosity를 참조하세요.
-?|-h|--help
명령을 사용하는 방법에 대한 설명을 출력합니다.
예
cert.pfx 인증서(암호로 보호되지 않음)를 사용하여 foo.nupkg에 서명합니다.
dotnet nuget sign foo.nupkg --certificate-path cert.pfx
cert.pfx 인증서(암호로 보호됨)를 사용하여 foo.nupkg에 서명합니다.
dotnet nuget sign foo.nupkg --certificate-path cert.pfx --certificate-password password
기본 인증서 저장소(CurrentUser\My)에 지정된 SHA-1 지문과 일치하는 인증서(암호로 보호됨)를 사용하여 foo.nupkg에 서명합니다.
dotnet nuget sign foo.nupkg --certificate-fingerprint 89967D1DD995010B6C66AE24FF8E66885E6E03A8 --certificate-password password
기본 인증서 저장소(CurrentUser\My)에 지정된 주체 이름 "Test certificate for testing signing"과 일치하는 인증서(암호로 보호됨)를 사용하여 foo.nupkg에 서명합니다.
dotnet nuget sign foo.nupkg --certificate-subject-name "Test certificate for testing signing" --certificate-password password
인증서 저장소 CurrentUser\Root에 지정된 SHA-1 지문과 일치하는 인증서(암호로 보호됨)를 사용하여 foo.nupkg에 서명합니다.
dotnet nuget sign foo.nupkg --certificate-fingerprint 89967D1DD995010B6C66AE24FF8E66885E6E03A8 --certificate-password password --certificate-store-location CurrentUser --certificate-store-name Root
cert.pfx 인증서(암호로 보호되지 않음)를 사용하여 여러 NuGet 패키지(foo.nupkg 및 ‘지정된 디렉터리의 모든 .nupkg 파일’)에 서명합니다.
dotnet nuget sign foo.nupkg c:\mydir\*.nupkg --certificate-path cert.pfx
cert.pfx 인증서(암호로 보호됨)를 사용하여 foo.nupkg에 서명하고
http://timestamp.test
를 사용하여 타임스탬프를 적용합니다.dotnet nuget sign foo.nupkg --certificate-path cert.pfx --certificate-password password --timestamper http://timestamp.test
cert.pfx 인증서(암호로 보호되지 않음)를 사용하여 foo.nupkg에 서명하고 서명된 패키지를 지정된 디렉터리에 저장합니다.
dotnet nuget sign foo.nupkg --certificate-path cert.pfx --output c:\signed\
cert.pfx 인증서(암호로 보호되지 않음)를 사용하여 foo.nupkg에 서명하고 패키지가 이미 서명된 경우 현재 시그니처를 덮어씁니다.
dotnet nuget sign foo.nupkg --certificate-path cert.pfx --overwrite
.NET