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