Windows EXE 파일 서명
나는이 EXE의 I Windows가 "알 수없는 출판사"에서 응용 프로그램에 대한 최종 사용자에게 경고하지 않도록 서명을 좋아한다고 파일을. 저는 Windows 개발자가 아닙니다. 해당 응용 프로그램은 화면 보호기 응용 프로그램을 생성하는 응용 프로그램에서 생성 된 화면 보호기입니다. 따라서 파일 생성 방법에는 영향을 미치지 않습니다.
이미 Verisign 또는 instantssl.com 과 같은 CA 의 코드 서명 인증서 가 필요하다는 것을 이미 알고 있습니다. 내가 이해하지 못하는 것은 EXE 파일에 서명하기 위해 (가능한 경우)해야 할 일입니다. 간단한 설명은 무엇입니까?
Mel Green의 대답이 더 나아 갔지만 signtool은 어떤 경우에 사용할 인증서를 지정하기를 원합니다. 이것이 어떻게 작동하는지 테스트 할 수있는 무료 코드 서명 인증서를 얻을 수 있습니까?
또한 올바른 인증서 종류를 지정하십시오. 대부분의 사이트는 "코드 서명"만 언급하고 실제로 사용자가 컴파일 한 응용 프로그램 서명에 대해 이야기합니다. 이것은 나에게 해당되지 않습니다.
Microsoft의 Sign Tool을 사용해보십시오.
Windows Server 2008 및 .NET 3.5 용 Windows SDK의 일부로 다운로드합니다. 일단 다운로드하면 다음과 같이 명령 행에서 사용할 수 있습니다.
signtool sign / a MyFile.exe
사용 가능한 "최고의 인증서"를 사용하여 단일 실행 파일에 서명합니다. 인증서가 없으면 SignTool 오류 메시지가 표시됩니다.
또는 시도해 볼 수 있습니다.
간판 간판
그러면 응용 프로그램 서명 과정을 안내하는 마법사가 시작됩니다. (이 옵션은 Windows SDK 7.0 이후에는 사용할 수 없습니다.)
실행 파일 서명 프로세스를 테스트하는 데 사용할 수있는 인증서를 받으려면 .NET 도구 Makecert를 사용할 수 있습니다 .
자체 인증서를 생성하고 실행 파일에 서명하는 데 사용한 인증서는 UAC 가 인증서를 실행 하는 사용자에게 신뢰할 수있는 소스에서 온 것으로 알리기 위해 컴퓨터에 대한 신뢰할 수있는 루트 CA로 수동으로 추가해야합니다 . 중요 합니다. ROOT CA로 인증서를 설치하면 사용자 개인 정보가 위험 해집니다. 델과 무슨 일이 있었는지보세요. 코드와 Windows를 통해이 작업을 수행하는 데 대한 자세한 정보는 다음을 참조하십시오.
잘하면 그것은 이것을 시도하는 사람에게 더 많은 정보를 제공합니다!
당신은 얻을 수 없는 싼 코드 서명 인증서를 Certum에서 오픈 소스 개발을하고 있다면.
1 년 이상 인증서를 사용해 왔으며 Windows에서 알 수없는 게시자 메시지를 제거합니다.
서명 코드까지는 다음과 같은 스크립트에서 signtool.exe 를 사용 합니다.
signtool.exe sign /t http://timestamp.verisign.com/scripts/timstamp.dll /f "MyCert.pfx" /p MyPassword /d SignedFile.exe SignedFile.exe
나는 직장에서 같은 시나리오를 가지고 있었고 여기에 우리의 발견이 있습니다.
가장 먼저 할 일은 인증서를 가져 와서 컴퓨터에 설치하는 것입니다. 인증 기관 에서 인증서를 구입 하거나 makecert를 사용하여 인증서를 생성 할 수 있습니다 .
다음은 두 가지 옵션의 장단점입니다
인증서 구매
- 찬성
- CA (Certificate Authority)에서 발급 한 인증서를 사용하면 Windows가 CA의 인증서를 사용하는 모든 컴퓨터의 "알 수없는 게시자"의 응용 프로그램에 대해 최종 사용자에게 경고하지 않습니다 (OS는 일반적으로 매니 CA의 루트 인증서와 함께 제공됨) )
- 단점 :
- CA에서 인증서를 얻는 데 드는 비용이 있습니다
Makecert를 사용하여 인증서 생성
- 장점 :
- 단계가 쉽고 최종 사용자와 인증서를 공유 할 수 있습니다
- 단점 :
- 최종 사용자는 컴퓨터에 옵션이 아닌 클라이언트에 따라 수동으로 인증서를 설치해야합니다.
- makecert로 생성 된 인증서는 일반적으로 프로덕션이 아닌 개발 및 테스트에 사용됩니다.
실행 파일 서명
원하는 파일에 서명하는 방법에는 두 가지가 있습니다.
컴퓨터에 설치된 인증서 사용
signtool.exe 부호 / a / s MY / sha1 sha1_thumbprint_value / t http://timestamp.verisign.com/scripts/timstamp.dll / v "C : \ filename.dll"
- 이 예에서는 개인 폴더에 저장된 인증서를 SHA1 지문 (인증서에서 제공)과 함께 사용하여 "C : \ filename.dll"에있는 파일에 서명합니다.
인증서 파일 사용
signtool 표시 / tr http://timestamp.digicert.com / td sha256 / fd sha256 / f "c : \ path \ to \ mycert.pfx"/ p pfxpassword "c : \ path \ to \ file.exe"
- 이 예에서는 "c : \ path \ to \ file.exe"파일에 서명하기 위해 인증서 "c : \ path \ to \ mycert.pfx"와 비밀번호 pfxpassword를 사용하고 있습니다.
서명 테스트
방법 1 : signtool 사용
Go to: Start > Run Type CMD > click OK At the command prompt, enter the directory where signtool exists Run the following:
signtool.exe verify /pa /v "C:\filename.dll"
Method 2: Using Windows
Right-click the signed file Select Properties Select the Digital Signatures tab. The signature will be displayed in the Signature list section.
I hope this could help you
Sources:
https://www.digicert.com/code-signing/signcode-signtool-command-line.htm
https://msdn.microsoft.com/en-us/library/windows/desktop/aa386968(v=vs.85).aspx
The ASP's magazine ASPects has a detailed description on how to sign code (You have to be a member to read the article). You can download it through http://www.asp-shareware.org/
Here's link to a description how you can make your own test certificate.
This might also be interesting.
Another option, if you need to sign the executable on a Linux box is to use signcode from the Mono project tools. It is supported on Ubuntu.
Reference https://steward-fu.github.io/website/driver/wdm/self_sign.htm Note: signtool.exe from Microsoft SDK
1.First time (to make private cert)
Makecert -r -pe -ss YourName YourName.cer
certmgr.exe -add YourName.cer -s -r localMachine root
2.After (to add your sign to your app)
signtool sign /s YourName YourApp.exe
And yet another option, if you're developing on Windows 10 but don't have Microsoft's signtool.exe installed, you can use Bash on Ubuntu on Windows to sign your app. Here is a run down:
https://blog.synapp.nz/2017/06/16/code-signing-a-windows-application-on-linux-on-windows/
Use following link to sign .exe (setup/ installer)file (sign exe/setup file without using Microsoft setup signtool)
https://ebourg.github.io/jsign/#files
sample command java -jar jsign-2.0.jar --keystore keystore.jks" --alias alias --storepass password MyInstaller.exe
Worked for me :)
참고URL : https://stackoverflow.com/questions/252226/signing-a-windows-exe-file
'Programing' 카테고리의 다른 글
"Temporary ASP.NET Files"폴더는 무엇입니까? (0) | 2020.06.09 |
---|---|
Objective C ++ 란 무엇입니까? (0) | 2020.06.09 |
디버깅을 위해 Visual Studio web.config 변환 사용 (0) | 2020.06.09 |
C ++에서 size_t와 int의 차이점은 무엇입니까? (0) | 2020.06.09 |
유효한 최소 JSON은 무엇입니까? (0) | 2020.06.09 |