다음을 통해 공유


VSIX 패키지에 관한 Sign CLI 참조

sign - 디스크 또는 WCM(Windows 인증서 관리자), CSP(암호화 서비스 공급자) 또는 Azure Key Vault에서 PFX, CER 또는 P7B 인증서를 사용하여 파일 및 컨테이너에 서명하는 데 사용되는 Dotnet 도구입니다.

Important

Sign CLI는 유효한 지문 알고리즘으로 SHA-256, SHA-384, 및 SHA-512만을 지원합니다. PowerShell을 사용하여 Get-FileHash -Algorithm SHA256 <path to .cer file> | Format-Table -AutoSize을(를) 통해 지문을 가져올 수 있습니다.

Important

Sign CLI는 RSA 알고리즘만 지원하므로 지문을 생성하는 데 사용하면 ECDSA 설치 중에 서명 유효성 검사가 실패합니다. 설치를 차단하지는 않지만 설치하는 동안 VSIX 설치 관리자 창에 "잘못된 서명" 경고가 표시됩니다.

개요

sign code certificate-store [<PATH(s)>]
    [-cf|--certificate-file <PATH>]
    [-p|--password <PASSWORD>]
    [-cfp|--certificate-fingerprint <SHA>]
    [-csp|--crypto-service-provider <CSPNAME>]
    [-k|--key-container <HASHALGORITHM>]
    [-km|--use-machine-key-container]
    [-d|--description <DESCRIPTION>]
    [-u|--descriptionUrl <URL>]
    [-fd|--file-digest <DIGEST>]
    [-t|--timestamp-url <URL>]
    [-tr|--timestamp-rfc3161 <URL>]
    [-td|--timestamp-digest <DIGEST>]
    [-o|--output <PATH>]
    [-b|--base-directory <wORKINGDIRECTORY>]
    [-f|--force]
    [-m|--max-concurrency <MAXCONCURRENCY>]
    [-fl|--filelist <FILELISTPATH>]
    [-i]|--interactive

sign code certificate-store -h|--help

설명

Sign CLI 는 인증서와 프라이빗을 사용하여 파일 및 컨테이너에 재귀적으로 서명하는 Dotnet 도구입니다. 인증서 및 프라이빗 키는 파일(PFX, P7B, CER) 또는 인증서 저장소에 설치된 인증서 또는 지문을 SHA-256SHA-384SHA-512 제공하여 가져올 수 있습니다. USB 키는 제조업체에서 구현하고 인증서 저장소에서 액세스하는 CSP(암호화 서비스 공급자 )를 사용하여 액세스할 수 있습니다.

설치

를 사용하여 전역적으로 Sign CLI 설치 dotnet tool install sign --prerelease --global

Sign CLI 오프라인 설치

격리된 환경의 경우 Sign CLI NuGet 패키지를 다운로드하고 다음을 사용하여 설치할 수 있습니다.

dotnet tool install --global --add-source <path-to-folder> <tool-name> --version <version>

인수

  • VSIX-paths(s)

    서명할 VSIX 패키지의 경로를 지정합니다.

옵션

  • -cf|--certificate-file <PATH>

    인증서와 잠재적으로 프라이빗 키가 포함된 PFX, P7B 또는 CER 파일입니다.

  • -p|--password <PASSWORD>

    인증서 파일의 선택적 암호입니다.

  • -cfp|--certificate-fingerprint <SHA>

    서명하기 전에 인증서를 식별하는 데 사용되는 SHA-256, SHA-384 또는 SHA-512 지문입니다.

  • -csp|--crypto-service-provider <CSP NAME>

    프라이빗 키를 포함하는 암호화 서비스 공급자입니다.

    참고 항목

    레거시 CSP가 "공급자 유형"을 지정하고 CNG 공급자의 이름에 일반적으로 "키 스토리지 공급자"가 있는 경우를 실행 certutil -csplist하여 사용 가능한 모든 CSP를 볼 수 있습니다. certutil -csptest "<provider name>" 는 특정 공급자에 대한 자세한 정보를 제공합니다.

  • -k|--key-container <CONTAINER NAME>]

    프라이빗 키 컨테이너 이름입니다.

    참고 항목

    를 실행 certutil -csp <Provider Name> -key하여 CSP 내에 저장된 모든 키를 찾을 수 있습니다.

  • -km|--use-machine-key-container]

    기본 사용자 수준 컨테이너 대신 머신 수준 프라이빗 키 컨테이너를 사용합니다.

  • -d|--description <DESCRIPTION>

    서명 인증서에 대한 설명입니다.

  • -u|--descriptionUrl <URL>

    서명 인증서의 설명 URL입니다.

  • -fd | --file-digest <DIGEST>

    파일을 해시할 다이제스트 알고리즘입니다.

  • -t|--timestamp-url <URL>

    RFC 3161 타임스탬프 서버 URL입니다. [기본값: http://timestamp.acs.microsoft.com/]

  • -tr | --timestamp-rfc3161 <URL>

    RFC 3161 타임스탬프 서버의 URL을 지정합니다.

  • -td|--timestamp-digest <DIGEST>

    스위치와 함께 -tr RFC 3161 타임스탬프 서버에서 사용하는 다이제스트 알고리즘을 요청하는 데 사용됩니다.

  • -o|--output <PATH>

    여러 파일이 지정된 경우 출력 파일 또는 폴더입니다. 생략하면 입력을 덮어씁니다.

  • -b|--base-directory <PATH>

    작업 디렉터리를 재정의할 파일의 기본 디렉터리입니다.

  • --f|--force

    서명이 있는 경우 덮어씁니다.

  • -m|--max-concurrency <MAXCONCURRENCY>

    최대 동시성(기본값: 4)

  • -fl | --filelist <PATH>

    컨테이너 내에서 서명하거나 서명에서 제외할 파일의 경로를 포함하는 파일의 경로입니다.

  • -?|-h|--help

    명령을 사용하는 방법에 대한 설명을 인쇄합니다.

  • -i|--interactive

    사용자가 암호를 입력해야 하는 사용자 보호 키를 사용하는 경우와 같은 일부 시나리오에서 필요한 사용자 입력을 요청합니다.

예제

  • 사용자 인증서 저장소로 가져온 인증서를 사용하여 contoso.vsix서명합니다.

    sign code certificate-store contoso.vsix -cfp 24D589...FB9523B36E -d "Constoso VSIX Signature" -u "http://www.contoso.com"
    
  • SHA-512 지문을 사용하여 인증서 cert.pfx(암호로 보호되지 않음)로 contoso.vsix에 서명합니다.

    sign code certificate-store contoso.vsix -cfp A87A6F...894559B981 -cfpa sha512 -cf D:\certificates\cert.pfx -d "Constoso VSIX Signature" -u "http://www.contoso.com"
    
  • 인증서 cert.pfx(암호로 보호됨)를 사용하여 contoso.vsix에 서명합니다.

    sign code certificate-store contoso.vsix -cfp 24D589...FB9523B36E -cf cert.pfx -p <password> -d "Constoso VSIX Signature" -u "http://www.contoso.com"
    
  • 인증서 cert.pfx(암호로 보호되지 않음)로 지정된 디렉터리의 contoso.vsix모든 .vsix 파일 등 여러 VSIX 패키지에 서명합니다.

    sign code certificate-store *.vsix -cfp 24D589...FB9523B36E -cf cert.pfx -d "Constoso VSIX Signature" -u "http://www.contoso.com"
    
  • 보안 USB 드라이브에 저장된 인증서로 contoso.vsix에 서명합니다.

    sign code certificate-store contoso.vsix -cfp 24D589...FB9523B36E -csp "Microsoft Software Key Storage Provider" -k "VsixSigning 0B2D249223B36D00A7DF07FB95E24D58" -d "Constoso VSIX Signature" -u "http://www.contoso.com"
    
  • 보안 USB 드라이브에 저장되고 컴퓨터 인증서 저장소(-km 옵션)에서 액세스한 인증서로 contoso.vsix서명합니다.

    sign code certificate-store contoso.vsix -cfp 24D589...FB9523B36E -csp "Microsoft Software Key Storage Provider" -k "VsixSigning 0B2D249223B36D00A7DF07FB95E24D58" -km -d "Constoso VSIX Signature" -u "http://www.contoso.com"
    

    참고 항목

    -k 옵션이 제공되지 않으면 도구는 제공된 CSP의 모든 컨테이너에서 일치하는 SHA 지문 인증서를 확인합니다.

  • 서명된 VSIX에 대한 파일 다이제스트 알고리즘(-fd), 타임스탬프 서버(-t) 및 사용자 지정 출력 경로(-o)를 지정하는 보안 USB 드라이브에 저장된 인증서로 contoso.vsix에 서명합니다.

    sign code certificate-store contoso.vsix -cfp 24D589...FB9523B36E -csp "Microsoft Software Key Storage Provider" -k "VsixSigning 0B2D249223B36D00A7DF07FB95E24D58" -d "Constoso VSIX Signature" -u "http://www.contoso.com" -t "http://timestamp.acs.microsoft.com/" -fd sha256 -o "ContosoSigned.vsix"