다음을 통해 공유


VSIX 패키지에 대한 CLI 참조 서명

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

중요하다

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

중요하다

서명 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-256, SHA-384또는 SHA-512 지문을 제공하여 가져올 수 있습니다. USB 키는 제조업체에서 구현하고 인증서 저장소에서 액세스하는 CSP(암호화 서비스 공급자)를 사용하여 액세스할 수 있습니다.

설치

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

서명 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>

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

    메모

    certutil -csplist실행하여 사용 가능한 모든 CSP를 볼 수 있습니다. 여기서 레거시 CSP는 "공급자 유형"을 지정하고 CNG 공급자는 일반적으로 이름에 "키 스토리지 공급자"를 갖습니다. 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>

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

  • -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"
    
  • contoso.vsix 여러 VSIX 패키지에 서명하고 인증서 cert.pfx 사용하여 지정된 디렉터리의 모든 .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 지문 인증서를 확인합니다.

  • 파일 다이제스트 알고리즘(-fd), 타임스탬프 서버(-t) 및 서명된 VSIX에 대한 사용자 지정 출력 경로(-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"