을 만들고 싶으면 어떻게 해야 하는 자체 서명된 인증서를 위해 코드 서명 Windows?
-
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.
를 생성한 열쇠:
New-SelfSignedCertificate -DnsName email@yourdomain.com -Type CodeSigning -CertStoreLocation cert:\CurrentUser\My
인증서를 내보내지 않고 개인 키:
Export-Certificate -Cert (Get-ChildItem Cert:\CurrentUser\My -CodeSigningCert)[0] -FilePath code_signing.crt
는[0]것입니다 이 경우에 있을 때 하나 이상의 인증서...분명히 인덱스와 일치하려는 인증서를 사용하여...거나 사용하는 방법을 여액(의 thumprint 또는 발행).수입으로 신뢰할 수 있는 게시자
Import-Certificate -FilePath .\code_signing.crt -Cert Cert:\CurrentUser\TrustedPublisher
가져오기로 루트 인증서 권한입니다.
Import-Certificate -FilePath .\code_signing.crt -Cert Cert:\CurrentUser\Root
로그인 스크립트입니다.
Set-AuthenticodeSignature .\script.ps1 -Certificate (Get-ChildItem Cert:\CurrentUser\My -CodeSigningCert)
분명히 설정하기만 하면 열쇠할 수 있습 단순히 다른 어떤 스크립트습니다.
당신이 얻을 수 있는 상세한 정보와 몇 가지 문제 해결에 도움이 이 문서.
로 PowerShell4.0(Windows8.1/Server2012 R2)하게 할 수 있는 인증에서 윈도우 없이 makecert.exe.
명령을 필요로하는 새-SelfSignedCertificate 고 수출 PfxCertificate.
그것은 매우 쉽게 사용 새-SelfSignedCertificate 명령에 있습니다.열 powershell 및 실행 3 이러한 명령입니다.
1) 성 인증서:
$cert=New-SelfSignedCertificate-dns 이름 www.yourwebsite.com 형 CodeSigning-CertStoreLocation Cert:\사\나2) 비밀번호를 설정한다:
$CertPassword=ConvertTo-SecureString -문자열"my_passowrd"Force–AsPlainText3) 내보내기:
수출 PfxCertificate-Cert"cert:\사\내\$($cert.지문)" -FilePath"d:\selfsigncert.pfx"암호$CertPassword
인증서 selfsigncert.효 있는 것입@ D:/
선택 사항: 당신은 또한 요구를 추가하는 인증서를 암호를 시스템 환경 변수입니다.이렇게 입력하여 아래에서 cmd: setx CSC_KEY_PASSWORD "my_password"