을 만들고 싶으면 어떻게 해야 하는 자체 서명된 인증서를 위해 코드 서명 Windows?

StackOverflow https://stackoverflow.com/questions/84847

  •  01-07-2019
  •  | 
  •  

문제

을 만들고 싶으면 어떻게 해야 하는 자체 서명된 인증서를 위해 코드 서명 도구를 사용하여 Windows SDK?

도움이 되었습니까?

해결책

업데이트 답

를 사용하는 경우 다음과 같은 윈도우 버전 또는 이후:Windows Server2012,Windows Server2012R2,또는 Windows8.1 다음 MakeCert 은 지금 사용되지 않습니다, 고 사용하는 것이 좋습 PowerShell Cmdlet 새-SelfSignedCertificate.

를 사용하는 경우 이전 버전과 같은 Windows7,당신은 스틱을하는 데 필요한 MakeCert 또는 다른 솔루션입니다.어떤 사람들 공개 키 인프라 Powershell(PSPKI)모듈.

원본 응답

하는 동안 당신을 만들 수 있습 자체 서명된 코드 서명 인증서(SPC- 소프트웨어 Publisher 인증서)한 번에,내가 선호하여 다음을 수행 할 수 있습니다:

을 만드는 자체 서명된 인증 기관(CA)

makecert -r -pe -n "CN=My CA" -ss CA -sr CurrentUser ^
         -a sha256 -cy authority -sky signature -sv MyCA.pvk MyCA.cer

(^=허용 배치 명령줄을 감싸는 라인)

이는 자체 서명(r)증명서,내보낼 수 있는 개인 키(pe).그것의 이름은"내 CA",그리고에 넣어야 한다는 CA 저장에 대한 현재 사용자.우리가 사용하는 SHA-256 알고리즘이 있습니다.핵심 의미에 대한 서명(하).

개인 키에 저장되어야 합니다 MyCA.pvk 파일에서 인증서 MyCA.cer 파일입니다.

CA 인증서 가져오기

이 없기 때문에점에서 갖는 CA 인증서를 신뢰하지 않는 경우,당신은 그것을 가져올 필요가 있으로 윈도우 인증서 저장소에 저장됩니다.당신 인증서를 사용하여 MMC 스냅인에서 명령 라인:

certutil -user -addstore Root MyCA.cer

성 코드 서명 인증서(SPC)

makecert -pe -n "CN=My SPC" -a sha256 -cy end ^
         -sky signature ^
         -ic MyCA.cer -iv MyCA.pvk ^
         -sv MySPC.pvk MySPC.cer

그것은 꽤 많은 위와 같지만 우리가 제공하는 키 발급 및 인증서(ic 고-iv 스위치).

우리는 또한 원 변환하는 인증서 및 키를효 file:

pvk2pfx -pvk MySPC.pvk -spc MySPC.cer -pfx MySPC.pfx

을 보호하려는 경우 선택합니다.파일-po 스위치,그렇지 않으면 PVK2PFX 를 만듭니다 웹 사이트에 파일이 없는 암호.

를 사용하는 코드 서명 인증서

signtool sign /v /f MySPC.pfx ^
              /t http://timestamp.url MyExecutable.exe

(왜 타임스탬프 수질)

가져오는 경우 웹 파일로 인증서 저장소에서(당신이 사용할 수 있습 PVKIMPRT 나 MMC 스냅),등록할 수 있는 코드는 다음과 같다:

signtool sign /v /n "Me" /s SPC ^
              /t http://timestamp.url MyExecutable.exe

일부 가능한 타임스탬프를 위한 Url signtool /t 습니다:

  • http://timestamp.verisign.com/scripts/timstamp.dll
  • http://timestamp.globalsign.com/scripts/timstamp.dll
  • http://timestamp.comodoca.com/authenticode

전체 Microsoft 설명서

다운로드

사람들을 위한되지 않습니다.NET 개발자,당신은 당신의 사본이 필요합니다 Windows SDK.NET framework.현재 링크로 여기에 있습니다: SDK&.NET (설치하는 makecert 에 C:\Program Files\Microsoft SDKs\Windows\v7.1).마일리지 달라질 수 있습니다.

MakeCert 에서 사용할 수 있는 Visual Studio 명령 프롬프트가 표시됩니다.Visual Studio2015 가 그것을 가지고 있고,그것은에서 시작할 수 있습니다 시작 메뉴에서 윈도우 7 에서"개발자가 명령 프롬프트에 대한 VS2015"또는"VS2015x64 기본 도구를 명령 프롬프트에"(아마도 모두 동일한 폴더에).

다른 팁

로의 대답은 매우 도움이 되었습니다.

작를 사용하여 문제가 있지만,그것을 보면"빨간색 Windows 을 확인할 수 없습니다 게시자의 이 드라이버 소프트웨어"오류가 발생합니다.키를 설치하는 것이었습니다 테스트는 루트 인증서

certutil -addstore Root Demo_CA.cer

는 로 대답하지 않았 매우 커버합니다.

여기에는 배치 파일을 나를 위해 일했다(my.inf 파일에 포함되지 않음).그것은 작업을 수행하는 방법을 보여 줍니다 그것은 모두 처음부터 끝까지,어떠한 GUI 툴 모든 (제외하고 몇 가지 암호를 묻).

REM Demo of signing a printer driver with a self-signed test certificate.
REM Run as administrator (else devcon won't be able to try installing the driver)
REM Use a single 'x' as the password for all certificates for simplicity.

PATH %PATH%;"c:\Program Files\Microsoft SDKs\Windows\v7.1\Bin";"c:\Program Files\Microsoft SDKs\Windows\v7.0\Bin";c:\WinDDK\7600.16385.1\bin\selfsign;c:\WinDDK\7600.16385.1\Tools\devcon\amd64

makecert -r -pe -n "CN=Demo_CA" -ss CA -sr CurrentUser ^
   -a sha256 -cy authority -sky signature ^
   -sv Demo_CA.pvk Demo_CA.cer

makecert -pe -n "CN=Demo_SPC" -a sha256 -cy end ^
   -sky signature ^
   -ic Demo_CA.cer -iv Demo_CA.pvk ^
   -sv Demo_SPC.pvk Demo_SPC.cer

pvk2pfx -pvk Demo_SPC.pvk -spc Demo_SPC.cer ^
   -pfx Demo_SPC.pfx ^
   -po x

inf2cat /drv:driver /os:XP_X86,Vista_X64,Vista_X86,7_X64,7_X86 /v

signtool sign /d "description" /du "www.yoyodyne.com" ^
   /f Demo_SPC.pfx ^
   /p x ^
   /v driver\demoprinter.cat

certutil -addstore Root Demo_CA.cer

rem Needs administrator. If this command works, the driver is properly signed.
devcon install driver\demoprinter.inf LPTENUM\Yoyodyne_IndustriesDemoPrinter_F84F

rem Now uninstall the test driver and certificate.
devcon remove driver\demoprinter.inf LPTENUM\Yoyodyne_IndustriesDemoPrinter_F84F

certutil -delstore Root Demo_CA

에 명시된 바와 같이 대답하기 위해서는 사용되지 않는 방법으로 로그인하신의 자신의 스크립트,하나의 사용해야 한다 새-SelfSignedCertificate.

  1. 를 생성한 열쇠:
    New-SelfSignedCertificate -DnsName email@yourdomain.com -Type CodeSigning -CertStoreLocation cert:\CurrentUser\My

  2. 인증서를 내보내지 않고 개인 키:
    Export-Certificate -Cert (Get-ChildItem Cert:\CurrentUser\My -CodeSigningCert)[0] -FilePath code_signing.crt 는[0]것입니다 이 경우에 있을 때 하나 이상의 인증서...분명히 인덱스와 일치하려는 인증서를 사용하여...거나 사용하는 방법을 여액(의 thumprint 또는 발행).

  3. 수입으로 신뢰할 수 있는 게시자
    Import-Certificate -FilePath .\code_signing.crt -Cert Cert:\CurrentUser\TrustedPublisher

  4. 가져오기로 루트 인증서 권한입니다.
    Import-Certificate -FilePath .\code_signing.crt -Cert Cert:\CurrentUser\Root

  5. 로그인 스크립트입니다.
    Set-AuthenticodeSignature .\script.ps1 -Certificate (Get-ChildItem Cert:\CurrentUser\My -CodeSigningCert)

분명히 설정하기만 하면 열쇠할 수 있습 단순히 다른 어떤 스크립트습니다.
당신이 얻을 수 있는 상세한 정보와 몇 가지 문제 해결에 도움이 이 문서.

로 PowerShell4.0(Windows8.1/Server2012 R2)하게 할 수 있는 인증에서 윈도우 없이 makecert.exe.

명령을 필요로하는 새-SelfSignedCertificate수출 PfxCertificate.

지침서 을 만드는 자체 서명된 인증서를 PowerShell.

그것은 매우 쉽게 사용 새-SelfSignedCertificate 명령에 있습니다.열 powershell 및 실행 3 이러한 명령입니다.

1) 성 인증서:
$cert=New-SelfSignedCertificate-dns 이름 www.yourwebsite.com 형 CodeSigning-CertStoreLocation Cert:\사\나

2) 비밀번호를 설정한다:
$CertPassword=ConvertTo-SecureString -문자열"my_passowrd"Force–AsPlainText

3) 내보내기:
수출 PfxCertificate-Cert"cert:\사\내\$($cert.지문)" -FilePath"d:\selfsigncert.pfx"암호$CertPassword

인증서 selfsigncert.효 있는 것입@ D:/


선택 사항: 당신은 또한 요구를 추가하는 인증서를 암호를 시스템 환경 변수입니다.이렇게 입력하여 아래에서 cmd: setx CSC_KEY_PASSWORD "my_password"

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top